Check out what’s new from Firebase at Google I/O 2022. Learn more

ابدأ مع Cloud Storage على Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

باستخدام Firebase Android BoM ، أعلن عن تبعية مكتبة Cloud Storage Android في الوحدة النمطية (مستوى التطبيق) ملف Gradle (عادةً app/build.gradle ).

Java

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

    // Declare 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 {
    // Declare 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.0.1'
}

Kotlin+KTX

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

    // Declare 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-ktx'
}

باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

(بديل) قم بتعريف تبعيات مكتبة Firebase بدون استخدام BoM

إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.

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

dependencies {
    // Declare 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-ktx:20.0.1'
}

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

تتمثل الخطوة الأولى في الوصول إلى حاوية التخزين السحابي في إنشاء مثيل لـ FirebaseStorage :

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

أنت جاهز لبدء استخدام Cloud Storage!

أولاً ، دعنا نتعلم كيفية إنشاء مرجع Cloud Storage .

وضع متطور

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

  • استخدام حاويات التخزين السحابي في مناطق جغرافية متعددة
  • استخدام حاويات التخزين السحابي في فئات تخزين مختلفة
  • استخدام حاويات التخزين السحابي مع العديد من المستخدمين المصادق عليهم في نفس التطبيق

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

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

في أي من حالات الاستخدام هذه ، سترغب في استخدام العديد من حاويات التخزين السحابي .

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

استخدم دلاء التخزين السحابي المتعددة

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

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

العمل مع الجرافات المستوردة

عند استيراد حاوية التخزين السحابي الحالية إلى 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 بهذا التطبيق:

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

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

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