شروع به کار با Cloud Storage در پلاتفرم‌های Apple

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

قبل از شروع

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

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

    • ثبت برنامه پلاتفرم‌های Apple در پروژه، و متصل کردن برنامه به Firebase با افزودن کتابخانه Firebase و فایل پیکربندی Firebase (GoogleService-Info.plist) به برنامه.

  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 است.

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

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

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

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

از Swift Package Manager برای نصب و مدیریت وابستگی‌های Firebase استفاده کنید.

  1. در Xcode، درحالی‌که پروژه برنامه‌تان باز است، به File (فایل) > Add Packages (افزودن بسته‌ها) بروید.
  2. وقتی خواسته شد، مخزن کیت توسعه نرم‌افزار Firebase برای پلاتفرم‌های Apple را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Cloud Storage را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags (سایر پرچم‌های پیونددهنده) در تنظیمات ساخت هدف اضافه کنید.
  6. وقتی تمام شد، Xcode به‌طور خودکار شروع به حل و بارگیری وابستگی‌های شما در پس‌زمینه می‌کند.

راه‌اندازی Cloud Storage در برنامه‌تان

  1. قبل‌از ایجاد یا استفاده از هر مرجع Firebase،‏ Firebase را مقداردهی اولیه کنید.

    اگر قبلاً محصول Firebase دیگری را راه‌اندازی کرده باشید، ممکن است این کار را انجام داده باشید، اما باید مطمئن شوید که کتابخانه FirebaseStorage را به فهرست واردات خود اضافه کرده‌اید.

    1. واحد FirebaseCore و واحد FirebaseStorage را در UIApplicationDelegate خود وارد کنید. همچنین توصیه می‌کنیم FirebaseAuth را اضافه کنید.

      SwiftUI

      import SwiftUI
      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Swift

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Objective-C

      @import FirebaseCore;
      @import FirebaseStorage;
      @import FirebaseAuth;
      // ...
      
    2. نمونه مشترک FirebaseApp را در روش application(_:didFinishLaunchingWithOptions:) نماینده برنامه‌تان پیکربندی کنید:

      SwiftUI

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Swift

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Objective-C

      // Use Firebase library to configure APIs
      [FIRApp configure];
      
    3. (فقط SwiftUI) یک نماینده برنامه ایجاد کنید و آن را به خود متصل کنید App ساختار با استفاده از UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor. همچنین باید swizzling نماینده برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل‌های SwiftUI را ببینید.

      SwiftUI

      @main
      struct YourApp: App {
        // Register app delegate for Firebase setup
        @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
      
        var body: some Scene {
          WindowGroup {
            NavigationView {
              ContentView()
            }
          }
        }
      }
      
  2. بااستفاده از برنامه Firebase پیش‌فرض، مرجعی برای سرویس Cloud Storage دریافت کنید.

    1. مطمئن شوید فایل پیکربندی Firebase (GoogleService-Info.plist) در پایگاه کد برنامه‌تان با نام دسته پیش‌فرض Cloud Storage به‌روز شده باشد.

      1. فایل پیکربندی به‌روزشده‌تان را دریافت کنید.

      2. از این فایل پیکربندی بارگیری‌شده برای جایگزین کردن فایل GoogleService-Info.plist موجود در ریشه پروژه Xcode خود استفاده کنید. اگر خواسته شد، انتخاب کنید که فایل پیکربندی به همه هدف‌ها اضافه شود.

        مطمئن شوید که فقط این جدیدترین فایل پیکربندی بارگیری‌شده را در برنامه‌تان دارید و نویسه‌های اضافی مثل (2) به نام فایل آن اضافه نشده باشد.

      پیدا کنید.
    2. بااستفاده از Firebase App پیش‌فرض، مرجعی برای سرویس Cloud Storage دریافت کنید:

      Swift

      let storage = Storage.storage()
      // Alternatively, explicitly specify the bucket name URL.
      storage = Storage.storage(url:"gs://BUCKET_NAME")

      Objective-C

      FIRStorage *storage = [FIRStorage storage];
      // Alternatively, explicitly specify the bucket name URL.
      // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];

آماده شروع استفاده از Cloud Storage هستید!

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

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

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

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

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

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

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

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

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

Swift

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Objective-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

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

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

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

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

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

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

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

Swift

// Get the default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp)

// Get a non-default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
    

Objective-C

// Get the default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp];

// Get a non-default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
    

مراحل بعدی

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

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

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

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

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