شروع به کار با Cloud Storage در Flutter

Cloud Storage for Firebase به شما امکان می‌دهد محتواهایی مانند تصویر، صدا، ویدیو، و فایل‌های دیگر (ازجمله محتوای تولیدشده توسط کاربر) را بارگذاری و هم‌رسانی کنید، که به شما امکان می‌دهد محتوای رسانه‌ای غنی در برنامه‌هایتان بسازید. داده‌های شما در یک Google Cloud Storage bucket ذخیره می‌شود — یک راهکار ذخیره‌سازی شیء در مقیاس اگزابایت با دسترسی بالا و افزونگی جهانی. ‫Cloud Storage for Firebase به شما امکان می‌دهد این فایل‌ها را به‌طور ایمن مستقیماً از دستگاه‌های همراه و مرورگرهای وب بارگذاری کنید و به‌راحتی با شبکه‌های ناپایدار کنار بیایید.

قبل از شروع

  1. اگر قبلاً این کار را نکرده‌اید، مطمئن شوید که راهنمای شروع به کار برای برنامه‌های Flutter را تکمیل کرده‌اید. ازجمله:

    • درحال ایجاد پروژه Firebase.

    • نصب و مقداردهی اولیه کیت‌های توسعه نرم‌افزار Firebase برای Flutter.

  2. مطمئن شوید پروژه Firebase شما در طرح قیمت‌گذاری Blaze پرداخت به اندازه استفاده باشد که برای استفاده از Cloud Storage for Firebase الزامی است. اگر Firebase و Google Cloud برایتان جدید است، بررسی کنید که آیا واجدشرایط اعتبار دوره آزمایشی رایگان ۳۰۰ دلاری هستید یا نه.

ایجاد دسته Cloud Storage پیش‌فرض

  1. در کنسول Firebase، به پایگاه‌های داده و فضای ذخیره‌سازی > فضای ذخیره‌سازی پیمایش کنید.

    اگر پروژه‌تان هنوز در طرح قیمت‌گذاری Blaze با پرداخت به اندازه استفاده نیست، از شما خواسته می‌شود پروژه‌تان را ارتقا دهید.

  2. روی شروع به کار کلیک کنید.

  3. مکانی برای سطل پیش‌فرضتان انتخاب کنید.

  4. Firebase Security Rules را برای دسته پیش‌فرضتان پیکربندی کنید. درطول توسعه، تنظیم کردن قوانین برای دسترسی عمومی را درنظر بگیرید.

  5. روی تمام کلیک کنید.

اکنون می‌توانید سطل را در کنسول Firebase مشاهده کنید (به پایگاه‌های داده و فضای ذخیره‌سازی > فضای ذخیره‌سازی > برگه فایل‌ها بروید). قالب نام پیش‌فرض سطل شما PROJECT_ID.firebasestorage.app است.

راه‌اندازی دسترسی عمومی

«فضای ذخیره‌سازی ابری ویژه Firebase» زبان قوانین اعلانی ارائه می‌دهد که به شما امکان می‌دهد تعریف کنید داده‌هایتان چگونه باید ساختاردهی شوند، چگونه باید نمایه‌گذاری شوند، و چه زمانی می‌توان داده‌هایتان را خواند و در آن‌ها نوشت. به‌طور پیش‌فرض، دسترسی خواندن و نوشتن به Cloud Storage محدود شده است تا فقط کاربران اصالت‌سنجی‌شده بتوانند داده‌ها را بخوانند یا بنویسند. برای شروع بدون راه‌اندازی اصالت‌سنجی Firebase، می‌توانید قوانین خود را برای دسترسی عمومی پیکربندی کنید.

این کار باعث می‌شود Cloud Storage برای همه باز شود، حتی افرادی که از برنامه‌تان استفاده نمی‌کنند، بنابراین حتماً هنگام راه‌اندازی اصالت‌سنجی، Cloud Storage را دوباره محدود کنید.

افزودن Cloud Storage SDK به برنامه

  1. از ریشه پروژه Flutter، فرمان زیر را برای نصب افزایه اجرا کنید:

    flutter pub add firebase_storage
    
  2. پس‌از تکمیل، برنامه Flutter خود را بازسازی کنید:

    flutter run
    
  3. افزونه را در کد Dart خود وارد کنید:

    import 'package:firebase_storage/firebase_storage.dart';
    

راه‌اندازی فضای ذخیره‌سازی ابری

  1. flutterfire configure را از دایرکتوری پروژه Flutter خود اجرا کنید. این کار فایل پیکربندی Firebase (firebase_options.dart) را در پایگاه کد برنامه‌تان به‌روز می‌کند تا نام دسته پیش‌فرض Cloud Storage شما را داشته باشد.

  2. با ایجاد نمونه‌ای از FirebaseStorage به مخزن Cloud Storage خود دسترسی پیدا کنید:

    final storage = FirebaseStorage.instance;
    
    // Alternatively, explicitly specify the bucket name URL.
    // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
    

آماده استفاده از Cloud Storage هستید!

مرحله بعدی؟ با نحوه ایجاد مرجع Cloud Storage آشنا شوید.

راه‌اندازی پیشرفته

چند مورد استفاده وجود دارد که به راه‌اندازی اضافی نیاز دارد:

اگر کاربرانی در سراسر جهان دارید و می‌خواهید داده‌هایشان را در نزدیکی آن‌ها ذخیره کنید، مورد استفاده اول عالی است. برای مثال، می‌توانید برای ذخیره داده‌های کاربران در ایالات متحده، اروپا، و آسیا، در این مناطق سطل ایجاد کنید تا تأخیر را کاهش دهید.

مورد استفاده دوم زمانی مفید است که داده‌هایی با الگوهای دسترسی متفاوت داشته باشید. برای مثال: می‌توانید یک سطل چندمنطقه‌ای یا منطقه‌ای راه‌اندازی کنید که تصاویر یا سایر محتواهای پربازدید را ذخیره می‌کند، و یک سطل نزدیک‌خط یا سردخط که نسخه‌های پشتیبان کاربر یا سایر محتواهای کم‌بازدید را ذخیره می‌کند.

در هریک از این موارد استفاده، باید از چند دسته Cloud Storage استفاده کنید.

مورد استفاده سوم زمانی مفید است که درحال ساختن برنامه‌ای مثل Google Drive هستید که به کاربران اجازه می‌دهد چندین حساب واردشده به سیستم داشته باشند (برای مثال، یک حساب شخصی و یک حساب کاری). می‌توانید از نمونه سفارشی Firebase App استفاده کنید تا هر حساب اضافی را اصالت‌سنجی کنید.

استفاده از چند سطل Cloud Storage

اگر می‌خواهید از سطل Cloud Storage دیگری غیراز سطل پیش‌فرض ارائه‌شده در بالا استفاده کنید، یا از چند سطل Cloud Storage در یک برنامه استفاده کنید، می‌توانید نمونه‌ای از FirebaseStorage ایجاد کنید که به سطل سفارشی شما ارجاع می‌دهد:

// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");

کار کردن با دسته‌های واردشده

هنگام وارد کردن یک سطل Cloud Storage موجود به Firebase، باید به Firebase اجازه دهید تا بااستفاده از ابزار gsutil که در Google Cloud SDK گنجانده شده است، به این فایل‌ها دسترسی داشته باشد:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET

می‌توانید شماره پروژه‌تان را همان‌طور که در مقدمه پروژه‌های Firebase شرح داده شده است پیدا کنید.

این موضوع بر دسته‌های جدیداً ایجادشده تأثیر نمی‌گذارد، زیرا آن‌ها دارای کنترل دسترسی پیش‌فرض تنظیم‌شده برای مجاز کردن Firebase هستند. این اقدامی موقتی است و در آینده به‌طور خودکار انجام خواهد شد.

استفاده از Firebase App سفارشی

اگر بااستفاده از FirebaseApp سفارشی برنامه پیچیده‌تری می‌سازید، می‌توانید نمونه‌ای از FirebaseStorage را که با آن برنامه مقداردهی اولیه شده است ایجاد کنید:

// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);

مراحل بعدی

  • آماده شدن برای راه‌اندازی برنامه:

    • App Check را فعال کنید تا مطمئن شوید که فقط برنامه‌های شما می‌توانند به مخزن‌های فضای ذخیره‌سازی‌تان دسترسی داشته باشند.

    • هشدارهای بودجه را برای پروژه‌تان در کنسول Google Cloud راه‌اندازی کنید.

    • داشبورد استفاده و صورت‌حساب را در کنسول Firebase پایش کنید تا تصویری کلی از استفاده پروژه‌تان در چندین سرویس Firebase به‌دست آورید. همچنین می‌توانید برای اطلاعات دقیق‌تر درباره استفاده، به داشبورد Cloud Storage استفاده مراجعه کنید.

    • بازبینه راه‌اندازی Firebase را مرور کنید.