ابدأ استخدام Cloud Storage على Android

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

المتطلبات الأساسية

إذا لم تكن قد قمت بذلك بالفعل، فأضف Firebase إلى مشروع Android الخاص بك .

قم بإنشاء مجموعة تخزين سحابية افتراضية

  1. من جزء التنقل بوحدة تحكم Firebase ، حدد التخزين ، ثم انقر فوق البدء .

  2. قم بمراجعة الرسائل حول تأمين بيانات Cloud Storage الخاصة بك باستخدام قواعد الأمان. أثناء التطوير، فكر في إعداد القواعد الخاصة بك للوصول العام .

  3. حدد موقعًا لحاوية التخزين السحابي الافتراضية الخاصة بك.

    • يعد إعداد الموقع هذا هو موقع موارد Google Cloud Platform (GCP) الافتراضي لمشروعك. لاحظ أنه سيتم استخدام هذا الموقع لخدمات GCP في مشروعك الذي يتطلب إعداد الموقع، على وجه التحديد، قاعدة بيانات Cloud Firestore وتطبيق App Engine (وهو أمر مطلوب إذا كنت تستخدم Cloud Scholer).

    • إذا لم تتمكن من تحديد موقع، فهذا يعني أن مشروعك يحتوي بالفعل على موقع مورد Google Cloud Platform افتراضي. تم ضبطه إما أثناء إنشاء المشروع أو عند إعداد خدمة أخرى تتطلب إعداد الموقع.

    إذا كنت مشتركًا في خطة Blaze، فيمكنك إنشاء مجموعات متعددة ، لكل منها موقعها الخاص.

  4. انقر فوق تم .

قم بإعداد الوصول العام

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

وهذا يجعل التخزين السحابي مفتوحًا لأي شخص، حتى الأشخاص الذين لا يستخدمون تطبيقك، لذا تأكد من تقييد التخزين السحابي الخاص بك مرة أخرى عند إعداد المصادقة.

أضف Cloud Storage SDK إلى تطبيقك

في ملف Gradle الخاص بالوحدة النمطية (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle )، أضف التبعية للتخزين السحابي مكتبة لالروبوت. نوصي باستخدام Firebase Android BoM للتحكم في إصدار المكتبة.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.8.0"))

    // 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:20.3.0")
}
هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

قم بإعداد التخزين السحابي

الخطوة الأولى للوصول إلى مجموعة Cloud Storage الخاصة بك هي إنشاء مثيل لـ FirebaseStorage :

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

أنت جاهز لبدء استخدام التخزين السحابي!

أولاً، دعونا نتعلم كيفية إنشاء مرجع للتخزين السحابي .

اعدادات متقدمة

هناك بعض حالات الاستخدام التي تتطلب إعدادًا إضافيًا:

تعتبر حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمين في جميع أنحاء العالم، وترغب في تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء مجموعات بيانات في الولايات المتحدة وأوروبا وآسيا لتخزين البيانات للمستخدمين في تلك المناطق لتقليل زمن الاستجابة.

حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات ذات أنماط وصول مختلفة. على سبيل المثال: يمكنك إعداد حاوية إقليمية أو متعددة المناطق لتخزين الصور أو غيرها من المحتويات التي يتم الوصول إليها بشكل متكرر، وحاوية الخط القريب أو البارد التي تخزن النسخ الاحتياطية للمستخدم أو أي محتوى آخر لا يتم الوصول إليه بشكل متكرر.

في أي من حالات الاستخدام هذه، ستحتاج إلى استخدام مجموعات تخزين سحابية متعددة .

تعتبر حالة الاستخدام الثالثة مفيدة إذا كنت تقوم بإنشاء تطبيق، مثل Google Drive، والذي يتيح للمستخدمين الحصول على حسابات متعددة مسجلة الدخول (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام مثيل تطبيق Firebase مخصص لمصادقة كل حساب إضافي.

استخدم عدة مجموعات تخزين سحابية

إذا كنت تريد استخدام مجموعة 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 ، المضمنة في Google Cloud SDK :

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

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