يتيح لك Cloud Storage for Firebase تحميل المحتوى من إنشاء المستخدمين ومشاركته، مثل الصور والفيديوهات، ما يتيح لك إنشاء محتوى وسائط غنية في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي عبارة عن حلّ لتخزين العناصر بحجم إكسبايت، وتتميّز بمدى توفّر مرتفع ومعدّل تكرار عالمي. يتيح لك Cloud Storage for Firebase تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، ما يتيح لك التعامل مع الشبكات غير المتقطعة بسهولة.
المتطلّبات الأساسية
أضِف Firebase إلى مشروع Android الخاص بك، إذا لم يسبق لك إجراء ذلك.
إنشاء حزمة تلقائية في Cloud Storage
من مساحة الروابط في وحدة تحكُّم Firebase، اختَر مساحة التخزين، ثم انقر على البدء.
راجِع الرسالة حول تأمين بيانات Cloud Storage باستخدام قواعد الأمان. أثناء تطوير التطبيق، يمكنك إعداد قواعدك المتعلقة بالوصول العام.
اختَر موقعًا جغرافيًا لحزمة Cloud Storage التلقائية لديك.
إنّ إعداد الموقع الجغرافي هذا هو الموقع الجغرافي التلقائي لمورد Google Cloud Platform (GCP) لمشروعك. يُرجى ملاحظة أنّه سيتم استخدام هذا الموقع الجغرافي لخدمات Google Cloud Platform في مشروعك والتي تتطلّب إعدادًا للموقع الجغرافي، لا سيّما قاعدة بيانات Cloud Firestore وتطبيق App Engine (وهو مطلوب في حال استخدام Cloud Scheduler).
إذا لم تتمكّن من اختيار موقع جغرافي، يعني هذا أنّ مشروعك يتضمّن موقعًا جغرافيًا تلقائيًا لمورد GCP. وقد تم تعيينه إما أثناء إنشاء المشروع أو عند إعداد خدمة أخرى تتطلب إعدادًا للموقع.
إذا كنت تستخدم خطة Blaze، يمكنك إنشاء عدّة حِزم لكل منها موقعها الجغرافي الخاص.
انقر على تم.
إعداد الوصول العام
توفّر خدمة Cloud Storage for Firebase لغة قواعد بيانية تسمح لك بتحديد الطريقة التي يجب تنظيم بياناتك بها، وكيفية فهرستها، والوقت الذي يمكن فيه قراءة البيانات والكتابة إليها. يتم تلقائيًا فرض قيود على إمكانية الوصول للقراءة والكتابة في Cloud Storage، بحيث يمكن فقط للمستخدمين الذين تمت مصادقتهم قراءة البيانات أو كتابتها. للبدء بدون إعداد المصادقة، يمكنك ضبط قواعدك لإتاحة الوصول للجميع.
وسيؤدي ذلك إلى إتاحة 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:33.1.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") }
باستخدام إطار عمل Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Android في Firebase.
(بديل) أضِف تبعيات مكتبة Firebase بدون استخدام قائمة BoM.
إذا اختَرت عدم استخدام قائمة مشروعات Firebase، يجب تحديد كل إصدار من إصدارات مكتبة 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:21.0.0") }
إعداد Cloud Storage
الخطوة الأولى للوصول إلى حزمة Cloud Storage هي إنشاء مثيل FirebaseStorage
:
Kotlin+KTX
storage = Firebase.storage
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
ويمكنك الآن بدء استخدام Cloud Storage.
لنتعرّف أولاً على كيفية إنشاء مرجع Cloud Storage.
الإعداد المتقدّم
في ما يلي بعض حالات الاستخدام التي تتطلب إعدادًا إضافيًا:
- استخدام حِزم Cloud Storage في مناطق جغرافية متعددة
- استخدام حِزم Cloud Storage في فئات تخزين مختلفة
- استخدام حِزم Cloud Storage مع العديد من المستخدمين الذين تمت مصادقتهم في التطبيق نفسه
تُعد حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمون في جميع أنحاء العالم، وتريد تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء مجموعات بيانات في الولايات المتحدة وأوروبا وآسيا لتخزين بيانات المستخدمين في تلك المناطق لتقليل وقت الاستجابة.
تُعد حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات ذات أنماط وصول مختلفة. على سبيل المثال: يمكنك إعداد حزمة متعددة المناطق أو إقليمية تخزِّن الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرّر، وحزمة بيانات قريبة من الخط أو على الخط البارد تخزن نسخًا احتياطية للمستخدمين أو محتوى آخر نادرًا ما يتم الوصول إليه.
في كلتا الحالتين، ستحتاج إلى استخدام حِزم Cloud Storage متعدّدة.
تُعد حالة الاستخدام الثالثة مفيدة إذا كنت تنشئ تطبيقًا، مثل Google Drive، والذي يتيح للمستخدمين امتلاك حسابات متعددة لتسجيل الدخول (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام تطبيق Firebase مخصّص لمصادقة كل حساب إضافي.
استخدام حِزم Cloud Storage المتعددة
إذا أردت استخدام حزمة Cloud Storage غير الحزمة التلقائية أعلاه،
أو استخدام عدة حِزم Cloud Storage في تطبيق واحد، يمكنك إنشاء مثيل من FirebaseStorage
يشير إلى الحزمة المخصّصة:
Kotlin+KTX
// 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://<your-cloud-storage-bucket>
يمكنك العثور على رقم مشروعك كما هو موضّح في مقدمة عن مشاريع Firebase.
ولا يؤثر ذلك في الحِزم التي تم إنشاؤها حديثًا، إذ إنّها تحتوي على عنصر التحكّم التلقائي في الوصول إلى البيانات للسماح بمنصّة Firebase. هذا إجراء مؤقت، وسيتم تنفيذه تلقائيًا في المستقبل.
استخدام تطبيق Firebase مخصّص
إذا كنت تنشئ تطبيقًا أكثر تعقيدًا باستخدام FirebaseApp
مخصّص، يمكنك إنشاء مثيل FirebaseStorage
تم إعداده باستخدام هذا التطبيق:
Kotlin+KTX
// 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");
الخطوات اللاحقة
الاستعداد لإطلاق تطبيقك:
يمكنك تفعيل ميزة فحص التطبيقات للمساعدة في ضمان وصول تطبيقاتك فقط إلى حِزم التخزين.
عليك إعداد تنبيهات بشأن الميزانية لمشروعك في وحدة تحكُّم Google Cloud.
راقِب لوحة بيانات الاستخدام والفوترةفي وحدة تحكُّم Firebase للحصول على صورة شاملة لاستخدام مشروعك في العديد من خدمات Firebase. يمكنك أيضًا الانتقال إلى لوحة بيانات استخدام Cloud Storage للاطّلاع على معلومات أكثر تفصيلاً عن الاستخدام.