ذخیره سازی فایل فایربیس اندروید-قسمت اول: آپلود فایل ها

ذخیره سازی فایل فایربیس اندروید-قسمت اول: آپلود فایل هاReviewed by آریانا on Jan 16Rating: 5.0ذخیره سازی فایل فایربیس اندروید-قسمت اول: آپلود فایل هادر این پست من یک راه برای آپلود کردن فایل به فایربیس را به شما یاد دادم. بر اساس نوع فایل ما می توانیم آنها را به عنوان byte array یا InputStream یا فایل آپلود نماییم.

از آنجا که یک ابزار مهم برای ارائه پشتیبانی back-end سریع برای صفحات وب و اپلیکیشن های موبایل، امروز می خواهیم در مورد ذخیره سازی فایل فایربیس اندروید صحبت کنیم. امروز در این آموزش من برای شما ذخیره سازی و قابلیت بازیابی در دسترس فایلها را برای اپلیکیشن های اندروید توضیح می دهم.

راه اندازی فایربیس در پروژه اندروید استودیو

فایربیس حالا به اندروید استودیو به عنوان یک ابزار اضافه شده بنابراین شما می توانیدد در نوار منو روی Tool -> Firebase کلیک کنید و این پنل رو در سمت راست مشاهده نمایید:

Storage  را انتخاب کنید و سپس روی “Upload and download file with Firebase Storage” کلیک کنید و این پنل ظاهر خواهد شد:

حالا “Connect to Firebase” را انتخاب کنید، اندروید استودیو مرورگر پیش فرض خود را راه اندازی می کند و شما باید با اکانت Google خود وارد شوید تا بتوانید ادامه دهید، اجازه دهید که این مراحل ساده را روی کنسول توسعه دهندگان گوگل دنبال کنیم و وقتی که مجددا به اندروید استودیو برگشتید، پنجره ی زیر را مشاهده می کنید:

یک پروژه موجود روی کنسول فایربیس (یا یک پروژه جدید ایجاد کنید) را انتخاب کنید و روی “Connect to Firebase” کلیک کنید، پس از تمام شدن این مراحل روی “Add Firebase Storage to your app” کلیک کنید ((entry (2) و پنجره ی زیر باز می شود:

روی “Accept Changes” کلیک کنید تا این dependency ها و فایل google-services.json به پروژه تان اضافه شوند. حالا شما محیط کارتان را کاملا تنظیم کرده اید!

همانطور که در پنل سمت راست می بینید، رد قسمت (۳)، (۴) و (۵)، آموزش هایی برای مقداردهی اولیه StorageReference و دانلود فایل ها از فایربیس و آپلود فایل ها به فایربیس وجود دارد.

صفحه ی کنسول فایربیس را باز کنید و پروژه را انتخاب کنید، در ستون سمت چپ Storage را انتخاب کنید و تب Rules را انتخاب نمایید و شما این کد را مشاهده خواهید کرد:

در این آموزش من می خواهم به کاربران اجازه دهم که بدون مجوز دسترسی به آپلود فایل ها برای نگه داشتن چیزهای ساده داشته باشند. بنابراین در خط اجازه خواندن بنویسید :

:if request.auth != null;, change != to == and click the PUBLISH button

حالا هر کاربر اپلیکیشن می تواند فایل ها را از back-end  فایربیس شما آپلود یا دانلود کند. لطفا به یاد داشته باشید: هیچ ایده ای برای محیط تولید نیست  چون در حوزه ی آموزش هستیم، می خواهیم که ذخیره سازی فایربیس بسیار ساده تر و بدون نیاز به کد احراز هویت باشد.

تست کردن آپلود/دانلود فایل روی کنسول فایربیس

البته شما می توانید به صورت دستی ففایل ها را روی کنسول فایربیس آپلود کنید. به tab File بروید، یک دکمه ی آبی رنگ با عنوان Upload File می بینید: رویش کلیک کنید و از کامپیوترتان یک فایل آپلود نمایید تا در ذخیره سازی فایربیس شما نشان داده شود.

مشابه آپلود شما می توانید یک فایل را از این پیج انتخاب کنید، دکمه Download ظاهر می شود و هنگامی که روی آن کلیک کنید فایل روی کامپیوتر شما دانلود خواهد شد.

آپلود یک Byte array از اپلیکیشن اندروید

حالا به پروژه اندروید برگردید و آپلود کد را بنویسید. اول از همه یک فایل عکس با فرمت PNG برای فولدر assets و یک فایل متنی برای پوشه ی خام مثل:

به منظور دسترسی فایل های ذخیره فایربیس تان ، شما احتیاج دارید که ابتدا یک رفرنس بریا آبجکت FirebaseStorage بگیرید و سپس یک StorageReference  برای URL  پروژه تان  و فایل هایی که می خواهید آپلود کنید، ایجاد کنید . شما می توانید URL پروژه تان را بالای فایل های بخش Storage در کنسول فایربیس مشاهده کنید. در onCreate() اکتیویتی تان، این کد را وارد کنید:

 

سپس ما احتایج داریم که یک byte array از فایل تصویری که در فولدر assets قرار دادید، بگیرید. ما این عکس را به عنوان یک Bitmap بازیابی می کنیم، آن را در یک ByteArrayOutputStream کمپرس کنید و بعد آن را به یک []byte تبدیل کنید. حالا یک UploadTask توسط ( []putBytes(byte برای آپلود عکس به فایربیس ایجاد کنیم. این UploadTask همچنین می تواند یک OnSuccessListener و OnFailureListener برای نمایش نتیجه فرآیند بارگذاری داشته باشد.

 

در این پروژه نمونه روند بارگذاری پس از کلیک روی دکمه نشان داده می شود و خروجی اش مثل تصویر زیر است:

به صفحه ی کنسول فایربیس بروید، می بینید که فایل های آپلود شده در (firebase.png) وجود دارند:

آپلود کردن از InputStream

حالا که متوجه شدید چگونه یک byte array را آپلود کنید، دو نوع دیگر از آپلود را باید ببینید. باید بگم که ما یک فایل متنی به نام test داریم. Txt در فولدر raw resources ماست. ما می توانیم آن را در  InputStream بخوانیم و سپس با استفاده از متد putStream(InputStream) از  StorageReference آپلود کنیم. مثل مورد بالا، ما از یک UploadTask برای آپلود استفاده می کنیم  و addOnSuccessListener و addOnFailureListener را اضافه می کنیم:

 

و خروجی پروژه ما مثل تصویر زیر است:

به صفحه کنسول فایربیس بروید و می بینید فایلهای تازه آپلود شده به نام test_upload.txt: وجود دارند.

نتیجه گیری:

در این پست من یک راه برای آپلود کردن فایل به فایربیس را به شما یاد دادم. بر اساس نوع فایل ما می توانیم آنها را به عنوان byte array یا InputStream یا فایل آپلود نماییم.

 

 

 

 

پاسخ دهید