بدء استخدام Cloud Storage على منصات Apple

تتيح لك Cloud Storage for Firebase تحميل ومشاركة المحتوى من إنشاء المستخدمين، مثل الصور والفيديوهات، ما يتيح لك إنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي حلّ تخزين كائنات على مستوى إكسابايت يتميز بمدى توفّر مرتفع ومزود بميزة التجميع الفائض على مستوى عالمي. ويتيح لك Cloud Storage for Firebase تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، مع التعامل مع الشبكات غير المستقرة بسهولة.

قبل البدء

  1. تأكَّد من إكمال دليل البدء لتطبيقات منصات Apple، إذا لم يسبق لك ذلك. يشمل هذا النوع من المحتوى ما يلي:

    • إنشاء مشروع على Firebase

    • تسجيل تطبيق أنظمة Apple الأساسية مع المشروع، وربط تطبيقك بمنصة Firebase عن طريق إضافة مكتبة Firebase وملف إعداد Firebase (GoogleService-Info.plist) إلى تطبيقك.

  2. تأكَّد من أنّ مشروعك على Firebase يستخدم خطة أسعار Blaze المستندة إلى الدفع حسب الاستخدام. إذا كنت حديث العهد باستخدام Firebase وGoogle Cloud، تحقّق ممّا إذا كنت مؤهلاً للحصول على رصيد بقيمة 300 دولار أمريكي.

إنشاء حزمة Cloud Storage تلقائية

  1. من لوحة التنقّل في وحدة تحكّم Firebase، اختَر مساحة التخزين.

    إذا لم يكن مشروعك مشتركًا في خطة أسعار Blaze المستندة إلى الدفع عند الاستخدام بعد، سيتم إعلامك بضرورة ترقية مشروعك.

  2. انقر على البدء.

  3. اختَر موقعًا جغرافيًا لحزمتك التلقائية.

  4. اضبط Firebase Security Rules للحزمة التلقائية. أثناء التطوير، ننصحك بإعداد قواعد الوصول العلني.

  5. انقر على تم.

يمكنك الآن عرض الحزمة في علامة التبويب Cloud Storage الملفات في وحدة تحكّم Firebase. تنسيق اسم الحزمة التلقائي هو PROJECT_ID.firebasestorage.app.

إعداد إتاحة الوصول للجميع

Cloud Storage for Firebase يوفّر لغة قواعد توضيحية تتيح لك تحديد كيفية تنظيم بياناتك وكيفية فهرستها والحالات التي يمكن فيها قراءة بياناتك وكتابتها. يتم تلقائيًا حظر الوصول للقراءة والكتابة إلى Cloud Storage حتى لا يتمكّن سوى المستخدمين الذين تم مصادقة هويتهم من قراءة data أو كتابتها. للبدء بدون إعداد Authentication، يمكنك ضبط قواعدك للوصول العلني.

يؤدي ذلك إلى فتح Cloud Storage لأي مستخدم، حتى المستخدمين الذين لا يستخدمون تطبيقك، لذا احرص على حظر Cloud Storage مرة أخرى عند إعداد مصادقة.

إضافة Cloud Storage إلى تطبيقك

استخدِم أداة Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.

  1. في Xcode، مع فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم.
  2. أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase عندما يُطلب منك ذلك:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. اختَر مكتبة Cloud Storage.
  5. أضِف العلامة -ObjC إلى قسم رموز ربط أخرى في إعدادات الإنشاء الخاصة بالهدف.
  6. عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ ملفاتك المضمّنة وتنزيلها في الخلفية.

إعداد Cloud Storage في تطبيقك

  1. إعداد Firebase قبل إنشاء أو استخدام أي مرجع Firebase.

    قد تكون قد أجريت ذلك من قبل إذا سبق لك إعداد منتج آخر من Firebase، ولكن عليك التأكّد من إضافة مكتبة FirebaseStorage إلى قائمة عمليات الاستيراد.

    1. استورِد وحدة FirebaseCore ووحدة FirebaseStorage في UIApplicationDelegate. ننصحك أيضًا بإضافة FirebaseAuth.

      واجهة المستخدم

      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. ويجب عليك أيضًا إيقاف تغيير تفويض التطبيق. لمزيد من المعلومات، يمكنك الاطّلاع على تعليمات SwiftUI.

      واجهة المستخدم

      @main
      struct YourApp: App {
        // Register app delegate for Firebase setup
        @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
      
        var body: some Scene {
          WindowGroup {
            NavigationView {
              ContentView()
            }
          }
        }
      }
      
  2. يمكنك الحصول على مرجع إلى خدمة Cloud Storage باستخدام تطبيق Firebase التلقائي.

    1. تأكَّد من تعديل ملف إعدادات Firebase (GoogleService-Info.plist) في codebase لتطبيقك باستخدام اسم حزمة Cloud Storage التلقائية.

      1. احصل على ملف الإعداد المعدَّل.

      2. استخدِم ملف الإعدادات الذي تم تنزيله لاستبدال ملف GoogleService-Info.plist الحالي في جذر مشروع Xcode. اختَر إضافة ملف الإعداد إلى جميع الأهداف، إذا طُلب منك ذلك.

        تأكَّد من أنّ ملف الإعدادات الذي تم تنزيله مؤخرًا هو الوحيد الذي تم تضمينه في تطبيقك، ومن أنّه لم يتم إلحاق اسم الملف بعلامات إضافية، مثل (2).

    2. احصل على مرجع للخدمة Cloud Storage باستخدام تطبيق Firebase التلقائي:

      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 لمصادقة كل حساب إضافي.

استخدام حِزم 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 المضمّنة في حزمة تطوير البرامج (SDK) Google Cloud:

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

يمكنك العثور على رقم مشروعك كما هو موضّح في مقدّمة عن مشاريع Firebase.

لا يؤثر ذلك في الحِزم التي تم إنشاؤها حديثًا، إذ تم ضبط عنصر التحكّم التلقائي في الوصول للسماح بمنصة Firebase. هذا إجراء مؤقت، وسيتم تنفيذه تلقائيًا في المستقبل.

استخدام تطبيق مخصّص على Firebase

إذا كنت بصدد إنشاء تطبيق أكثر تعقيدًا باستخدام 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"];
    

الخطوات التالية