يتيح لك Cloud Storage for Firebase تحميل ومشاركة المحتوى من إنشاء المستخدمين، مثل الصور والفيديو، ما يتيح لك إنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي حلّ لتخزين العناصر على نطاق إكسابايت مع توفّر عالٍ وتكرار عالمي. تتيح لك Cloud Storage for Firebase تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، والتعامل مع الشبكات المتقطّعة بسهولة.
قبل البدء
إذا لم يسبق لك إجراء ذلك، تأكَّد من إكمال دليل البدء لتطبيقات Android. ويشمل ذلك ما يلي:
إنشاء مشروع Firebase
تسجيل تطبيق Android في المشروع، وربط تطبيقك بمنصة Firebase من خلال إضافة تبعيات Firebase، والمكوّن الإضافي لخدمات Google، وملف إعداد Firebase (
google-services.json) إلى تطبيقك.
تأكَّد من أنّ مشروع 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 مرة أخرى عند إعداد المصادقة.
إضافة حزمة تطوير البرامج (SDK) لـ "Cloud Storage" إلى تطبيقك
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً<project>/<app-module>/build.gradle.kts أو
<project>/<app-module>/build.gradle)،
أضِف الاعتمادية لمكتبة Cloud Storage على Android. ننصح باستخدام
Firebase Android BoM
للتحكّم في إصدارات المكتبة.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM، عليك تحديد كل إصدار من مكتبة Firebase في سطر التبعية الخاص به.
يُرجى العِلم أنّه في حال استخدام مكتبات Firebase متعددة في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبات، ما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:23.0.0") }
إعداد Cloud Storage في تطبيقك
تأكَّد من تحديث ملف إعداد Firebase (
google-services.json) في قاعدة الرموز البرمجية لتطبيقك باسم حزمة Cloud Storage التلقائية.استخدِم ملف الإعداد الذي تم تنزيله لاستبدال ملف
google-services.jsonالحالي في دليل وحدة تطبيقك (على مستوى التطبيق).تأكَّد من أنّ ملف الإعداد الذي تم تنزيله مؤخرًا هو الوحيد في تطبيقك وأنّ اسم الملف لا يتضمّن أحرفًا إضافية، مثل
(2).
يمكنك الوصول إلى حزمة Cloud Storage من خلال إنشاء مثيل من
FirebaseStorage:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("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 متعددة في تطبيق واحد، يمكنك
إنشاء مثيل من FirebaseStorage يشير إلى حزمتك المخصّصة:
Kotlin
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.getInstance("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 مخصّص، يمكنك
إنشاء مثيل من FirebaseStorage تم إعداده باستخدام هذا التطبيق:
Kotlin
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
الخطوات التالية
استعِدّ لإطلاق تطبيقك:
فعِّل App Check للمساعدة في ضمان أنّه لا يمكن لأحد الوصول إلى مجموعات بيانات التخزين الخاصة بك سوى تطبيقاتك.
يمكنك إعداد تنبيهات بشأن الميزانية لمشروعك في وحدة تحكّم Google Cloud.
يمكنك مراقبة لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على نظرة عامة على استخدام مشروعك في خدمات Firebase المتعدّدة. يمكنك أيضًا الانتقال إلى لوحة بيانات Cloud Storage الاستخدام للحصول على معلومات أكثر تفصيلاً عن الاستخدام.