تتيح لك Cloud Storage for Firebase تحميل المحتوى من إنشاء المستخدمين ومشاركته، مثل الصور والفيديوهات، ما يسمح لك بإنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في حاوية Google Cloud Storage، وهي حل لتخزين الكائنات على نطاق إكسابايت يتسم بالتوفّر العالي والتكرار على مستوى العالم. Cloud Storage for Firebase تتيح لك تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، ما يسهّل التعامل مع الشبكات غير المستقرة.
قبل البدء
تأكَّد من إكمال دليل البدء لتطبيقات منصات Apple، إذا لم يسبق لك ذلك. ويشمل ذلك ما يلي:
إنشاء مشروع Firebase
تسجيل تطبيق منصات Apple في المشروع وربط تطبيقك بمنصة Firebase من خلال إضافة مكتبة Firebase وملف الإعداد (
GoogleService-Info.plist) إلى تطبيقك
تأكَّد من أنّ مشروع Firebase الخاص بك يستخدم خطة التسعير Blaze المَرِنة، وهي شرط لاستخدام Cloud Storage for Firebase. إذا كنت تستخدم Firebase وGoogle Cloud للمرة الأولى، تحقَّق مما إذا كنت مؤهلاً للحصول على رصيد تجريبي مجاني بقيمة 300 دولار.
إنشاء حاوية Cloud Storage تلقائية
في وحدة تحكُّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > مساحة التخزين.
إذا لم يكن مشروعك بعد على خطة Blaze المَرِنة للدفع حسب الاستخدام، سيُطلب منك ترقية مشروعك.
انقر على البدء.
اختَر موقعًا جغرافيًا لحاويتك التلقائية.
يمكن أن تستفيد الحاويات في
وUS-CENTRAL1 وUS-EAST1 من المستوى "دائمًا مجاني" في Google Cloud Storage. تخضع الحاويات في جميع المواقع الجغرافية الأخرى لتسعير Google Cloud Storage واستخدامه.US-WEST1إذا أردت، يمكنك لاحقًا إنشاء حاويات متعددة، لكل منها موقع جغرافي خاص بها.
اضبط Firebase Security Rules لحاويتك التلقائية. أثناء التطوير، ننصحك بـ إعداد قواعد الوصول العلني.
انقر على تم.
يمكنك الآن عرض الحاوية في وحدة تحكُّم Firebase (انتقِل إلى
قواعد البيانات ومساحة التخزين > مساحة التخزين >
علامة التبويب الملفات).
يكون تنسيق اسم الحاوية التلقائية PROJECT_ID.firebasestorage.app
إعداد الوصول العلني
Cloud Storage for Firebase توفّر لغة قواعد إعلانية تتيح لك تحديد كيفية تنظيم بياناتك وكيفية فهرستها ومتى يمكن قراءتها وكتابتها. يكون الوصول للقراءة والكتابة إلى Cloud Storage محدودًا تلقائيًا، لذا لا يمكن للمستخدمين المصادَق عليهم فقط قراءة البيانات أو كتابتها. للبدء بدون إعداد Authentication، يمكنك ضبط قواعد الوصول العلني.
يؤدي ذلك إلى إتاحة Cloud Storage لأي مستخدم، حتى لو لم يكن يستخدم تطبيقك، لذا احرص على تقييد Cloud Storage مرة أخرى عند إعداد المصادقة.
إضافة Cloud Storage إلى تطبيقك
استخدِم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، افتح مشروع تطبيقك وانتقِل إلى ملف > إضافة حِزم.
- عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصات Apple من Firebase:
- اختَر مكتبة Cloud Storage.
- أضِف العلامة
-ObjCإلى قسم علامات الرابط الأخرى في إعدادات الإصدار للهدف. - بعد الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
إعداد Cloud Storage في تطبيقك
عليك تهيئة Firebase قبل إنشاء أي مرجع إلى Firebase أو استخدامه.
ربما سبق لك إجراء ذلك إذا سبق لك إعداد منتج آخر من Firebase، ولكن عليك التأكّد من إضافة مكتبة
FirebaseStorageإلى قائمة عمليات الاستيراد.استورِد الوحدة
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; // ...اضبط مثيلاً مشتركًا في طريقة
application(_:didFinishLaunchingWithOptions:)لمندوب تطبيقك:FirebaseAppSwiftUI
// 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];(SwiftUI فقط) أنشئ مندوب تطبيق وأرفِقه ببنية
AppباستخدامUIApplicationDelegateAdaptorأوNSApplicationDelegateAdaptor. عليك أيضًا إيقاف عملية تبديل مندوب التطبيق. لمزيد من المعلومات، اطّلِع على تعليمات SwiftUI.SwiftUI
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
احصل على مرجع إلى خدمة Cloud Storage باستخدام تطبيق Firebase التلقائي.
تأكَّد من تعديل ملف إعداد Firebase (
GoogleService-Info.plist) في قاعدة رموز تطبيقك باسم حاوية Cloud Storage التلقائية.استخدِم ملف الإعداد الذي تم تنزيله لاستبدال ملف
GoogleService-Info.plistالحالي في جذر مشروع Xcode. إذا طُلب منك ذلك، اختَر إضافة ملف الإعداد إلى جميع الأهداف.تأكَّد من أنّ لديك ملف الإعداد الأخير الذي تم تنزيله فقط في تطبيقك وأنّ اسم الملف لا يحتوي على أحرف إضافية، مثل
(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 في مناطق جغرافية متعددة
- استخدام حاويات Cloud Storage في فئات تخزين مختلفة
- استخدام حاويات Cloud Storage مع عدة مستخدمين مصادَق عليهم في التطبيق نفسه
تكون حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمون في جميع أنحاء العالم وأردت تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء حاويات في الولايات المتحدة وأوروبا وآسيا لتخزين بيانات المستخدمين في هذه المناطق من أجل تقليل وقت الاستجابة.
تكون حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات تتضمّن أنماط وصول مختلفة. على سبيل المثال، يمكنك إعداد حاوية متعددة المناطق أو إقليمية تخزّن الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرر، وحاوية nearline أو coldline تخزّن نُسخ احتياطية للمستخدمين أو محتوى آخر لا يتم الوصول إليه بشكل متكرر.
في أيّ من حالات الاستخدام هذه، ننصحك باستخدام حاويات 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 المضمّنة في 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 تم تهيئته باستخدام هذا التطبيق:
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 Console.
راقِب لوحة بيانات الاستخدام والفوترة في وحدة تحكُّم Firebase للحصول على صورة عامة عن استخدام مشروعك لخدمات Firebase المتعددة. يمكنك أيضًا الانتقال إلى لوحة بيانات Cloud Storage الاستخدام للحصول على معلومات أكثر تفصيلاً عن الاستخدام.