تتيح لك خدمة Cloud Storage for Firebase تحميل المحتوى الذي ينشئه المستخدمون ومشاركته، مثل الصور والفيديوهات، ما يسمح لك بإنشاء محتوى وسائط متعددة في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي حل لتخزين الكائنات على نطاق إكسا بايت، يتسم بتوفّر عالٍ وتكرار على مستوى العالم. تتيح لك خدمة Cloud Storage for Firebase تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، والتعامل بسهولة مع الشبكات غير المستقرة.
قبل البدء
إذا لم يسبق لك ذلك، تأكَّد من إكمال دليل البدء لتطبيقات Flutter. ويشمل ذلك ما يلي:
إنشاء مشروع على Firebase
تثبيت حِزم Firebase SDK لـ Flutter وتهيئتها
تأكَّد من أنّ مشروعك على 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 محدودًا تلقائيًا، لذا لا يمكن للمستخدمين غير المصادَق عليهم قراءة البيانات أو كتابتها. للبدء بدون إعداد Firebase Authentication، يمكنك ضبط قواعدك للوصول العلني.
يؤدي ذلك إلى إتاحة Cloud Storage لأي مستخدم، حتى لو لم يكن يستخدم تطبيقك، لذا احرص على تقييد الوصول إلى Cloud Storage مرة أخرى عند إعداد المصادقة.
إضافة Cloud Storage SDK إلى تطبيقك
من جذر مشروع Flutter، نفِّذ الأمر التالي لتثبيت المكوّن الإضافي:
flutter pub add firebase_storageبعد اكتمال التثبيت، أعِد إنشاء تطبيق Flutter:
flutter runاستورِد المكوّن الإضافي في رمز Dart:
import 'package:firebase_storage/firebase_storage.dart';
إعداد Cloud Storage
نفِّذ الأمر
flutterfire configureمن دليل مشروع Flutter. يؤدي ذلك إلى تعديل ملف إعداد Firebase (firebase_options.dart) في قاعدة رموز تطبيقك بحيث يتضمّن اسم حزمة Cloud Storage التلقائية.يمكنك الوصول إلى حزمة Cloud Storage من خلال إنشاء مثيل من
FirebaseStorage:final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
أصبحت جاهزًا لبدء استخدام Cloud Storage.
ما هي الخطوة التالية؟ تعرَّف على كيفية إنشاء مرجع في Cloud Storage.
عملية الإعداد المتقدّمة
هناك بعض حالات الاستخدام التي تتطلّب إعدادًا إضافيًا:
- استخدام حِزم Cloud Storage في مناطق جغرافية متعددة
- استخدام حِزم Cloud Storage في فئات تخزين مختلفة
- استخدام حِزم Cloud Storage مع عدة مستخدمين مصادَق عليهم في التطبيق نفسه
تكون حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمون في جميع أنحاء العالم وأردت تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء حِزم في الولايات المتحدة وأوروبا وآسيا لتخزين بيانات المستخدمين في هذه المناطق من أجل تقليل وقت الاستجابة.
تكون حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات تتضمّن أنماط وصول مختلفة. على سبيل المثال، يمكنك إعداد حزمة متعددة المناطق أو حزمة إقليمية تخزّن الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرر، وحزمة nearline أو coldline تخزّن نُسخًا احتياطية للمستخدمين أو محتوى آخر لا يتم الوصول إليه بشكل متكرر.
في أيٍّ من حالتَي الاستخدام هاتَين، ننصحك باستخدام حِزم Cloud Storage متعددة.
تكون حالة الاستخدام الثالثة مفيدة إذا كنت تنشئ تطبيقًا، مثل Google Drive، يتيح للمستخدمين تسجيل الدخول باستخدام حسابات متعددة (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام مثيل مخصّص من Firebase App لمصادقة كل حساب إضافي.
استخدام حِزم Cloud Storage متعددة
إذا أردت استخدام حزمة Cloud Storage غير الحزمة التلقائية المقدَّمة أعلاه، أو استخدام حِزم Cloud Storage متعددة في تطبيق واحد، يمكنك إنشاء مثيل من FirebaseStorage يشير إلى حزمتك المخصّصة:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "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 App مخصّص
إذا كنت تنشئ تطبيقًا أكثر تعقيدًا باستخدام FirebaseApp مخصّص، يمكنك إنشاء مثيل من FirebaseStorage تم تهيئته باستخدام هذا التطبيق:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
الخطوات التالية
- الاستعداد لطرح تطبيقك:
- فعِّل ميزة التحقّق من التطبيق للمساعدة في ضمان عدم تمكّن سوى تطبيقاتك من الوصول إلى حِزم التخزين.
- اضبط تنبيهات الميزانية لمشروعك في Google Cloud Console.
- راقِب لوحة بيانات الاستخدام والفوترة في وحدة تحكُّم Firebase للحصول على صورة شاملة عن استخدام مشروعك لخدمات Firebase المتعددة. يمكنك أيضًا الانتقال إلى لوحة بيانات الاستخدام في Cloud Storage للحصول على معلومات أكثر تفصيلاً عن الاستخدام.
- راجِع قائمة التحقّق من إطلاق Firebase.