با Cloud Storage در Flutter شروع کنید

فضای ذخیره‌سازی ابری برای فایربیس به شما امکان می‌دهد محتوای تولید شده توسط کاربر، مانند تصاویر و ویدیو را آپلود و به اشتراک بگذارید، که به شما امکان می‌دهد محتوای رسانه‌ای غنی را در برنامه‌های خود ایجاد کنید. داده‌های شما در یک سطل فضای ذخیره‌سازی ابری گوگل ذخیره می‌شوند - یک راه‌حل ذخیره‌سازی شیء در مقیاس اگزابایت با دسترسی بالا و افزونگی جهانی. فضای ذخیره‌سازی ابری برای فایربیس به شما امکان می‌دهد این فایل‌ها را مستقیماً از دستگاه‌های تلفن همراه و مرورگرهای وب به طور ایمن آپلود کنید و شبکه‌های پراکنده را به راحتی مدیریت کنید.

قبل از اینکه شروع کنی

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

    • ایجاد یک پروژه فایربیس

    • نصب و راه‌اندازی SDK های Firebase برای Flutter.

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

یک سطل ذخیره‌سازی ابری پیش‌فرض ایجاد کنید

  1. از پنل ناوبری کنسول Firebase ، گزینه Storage را انتخاب کنید.

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

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

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

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

  5. روی انجام شد کلیک کنید.

اکنون می‌توانید سطل را در تب Cloud Storage Files در کنسول Firebase مشاهده کنید. فرمت نام سطل پیش‌فرض شما به صورت زیر است: PROJECT_ID .firebasestorage.app

تنظیم دسترسی عمومی

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

این باعث می‌شود فضای ذخیره‌سازی ابری برای همه، حتی افرادی که از برنامه شما استفاده نمی‌کنند، باز باشد، بنابراین هنگام تنظیم احراز هویت، حتماً فضای ذخیره‌سازی ابری خود را دوباره محدود کنید.

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 به فضای ذخیره‌سازی ابری خود دسترسی پیدا کنید:

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

شما آماده‌اید تا از فضای ذخیره‌سازی ابری استفاده کنید!

مرحله بعدی؟ یاد بگیرید که چگونه یک مرجع فضای ذخیره‌سازی ابری ایجاد کنید .

تنظیمات پیشرفته

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

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

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

در هر یک از این موارد استفاده، شما باید از چندین فضای ذخیره‌سازی ابری استفاده کنید .

مورد سوم در صورتی مفید است که در حال ساخت برنامه‌ای مانند گوگل درایو باشید که به کاربران اجازه می‌دهد چندین حساب کاربری (مثلاً یک حساب شخصی و یک حساب کاری) داشته باشند. می‌توانید از یک نمونه برنامه سفارشی Firebase برای تأیید اعتبار هر حساب اضافی استفاده کنید .

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

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

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

کار با سطل‌های وارداتی

هنگام وارد کردن یک مخزن ذخیره‌سازی ابری موجود به فایربیس، باید با استفاده از ابزار 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 سفارشی استفاده کنید

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

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

مراحل بعدی