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

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

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

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

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

    • ثبت برنامه پلتفرم اپل خود در پروژه و اتصال برنامه به فایربیس با اضافه کردن کتابخانه فایربیس و فایل پیکربندی فایربیس ( GoogleService-Info.plist ) به برنامه.

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

یک سطل Cloud Storage پیش‌فرض ایجاد کنید

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

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

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

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

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

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

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

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

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

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

Cloud Storage به برنامه خود اضافه کنید

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

  1. در Xcode، با باز کردن پروژه برنامه خود، به File > Add Packages بروید.
  2. وقتی از شما خواسته شد، مخزن SDK پلتفرم‌های اپل فایربیس را اضافه کنید:
  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 نیز اضافه کنید.

      سویفت‌یو‌آی

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

      سویفت

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      هدف-سی

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

      سویفت‌یو‌آی

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

      سویفت

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

      هدف-سی

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

      سویفت

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

      هدف-سی

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

شما آماده‌اید تا از Cloud Storage استفاده کنید!

مرحله بعدی؟ یاد بگیرید که چگونه یک مرجع Cloud Storage ایجاد کنید .

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

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

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

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

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

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

از چندین فضای Cloud Storage استفاده کنید

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

سویفت

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

هدف-سی

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

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

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

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

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

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

از یک برنامه Firebase سفارشی استفاده کنید

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

سویفت

// 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")
    

هدف-سی

// 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"];
    

مراحل بعدی