تتيح لك خدمة "مساحة التخزين في السحابة الإلكترونية" من Firebase إمكانية تحميل محتوى ينشئه المستخدمون ومشاركته، مثل الصور والفيديوهات، ما يتيح لك إنشاء محتوى وسائط متعددة تفاعلية في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي حلّ تخزين ملفّات على مستوى exabyte يتميز بمدى توفّر مرتفع ومزود بميزة التكرار على مستوى العالم. تتيح لك خدمة "التخزين في السحابة الإلكترونية" من Firebase تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، ما يتيح لك التعامل بسهولة مع الشبكات غير المستقرة.
قبل البدء
تأكَّد من إكمال قراءة دليل بدء استخدام تطبيقات Flutter، إذا لم يسبق لك ذلك. ويشمل ذلك ما يلي:
إنشاء مشروع على Firebase
تثبيت حِزم تطوير البرامج (SDK) لمنصّة Firebase وإعدادها لاستخدامها مع Flutter
تأكَّد من أنّ مشروعك على Firebase يستخدم خطة أسعار Blaze المستندة إلى الدفع حسب الاستخدام. إذا كنت حديث العهد باستخدام Firebase وGoogle Cloud، تحقّق ممّا إذا كنت مؤهلاً للحصول على رصيد بقيمة 300 دولار أمريكي.
إنشاء حزمة تلقائية في Cloud Storage
من لوحة التنقّل في وحدة تحكّم Firebase، اختَر مساحة التخزين.
إذا لم يكن مشروعك مشتركًا في خطة أسعار Blaze المستندة إلى الدفع عند الاستخدام بعد، سيتم إعلامك بضرورة ترقية مشروعك.
انقر على البدء.
اختَر موقعًا جغرافيًا للحزمة التلقائية.
يمكن للحزم في
وUS-CENTRAL1
وUS-EAST1
الاستفادة من المستوى"مجاني دائمًا" في Google Cloud Storage. وتلتزم الحِزم في جميع المواقع الجغرافية الأخرى بحدود Google Cloud Storage السعر والاستخدام.US-WEST1
يمكنك في وقت لاحق إنشاء حِزم متعددة، يكون لكلّ منها موقع جغرافي خاص بها، إذا أردت ذلك.
اضبط Firebase Security Rules للحزمة التلقائية. أثناء التطوير، ننصحك بإعداد قواعد الوصول العلني.
انقر على تم.
يمكنك الآن عرض الحزمة في علامة التبويب
Cloud Storage الملفات
في وحدة تحكّم Firebase. تنسيق اسم الحزمة التلقائي هو
PROJECT_ID.firebasestorage.app
إعداد إمكانية الوصول العلني
توفّر خدمة Cloud Storage لـ Firebase لغة قواعد توضيحية تتيح لك تحديد كيفية تنظيم بياناتك وكيفية فهرستها والحالات التي يمكن فيها قراءة بياناتك وكتابتها. يتم تلقائيًا حظر الوصول للقراءة والكتابة إلى Cloud Storage حتى لا يتمكّن سوى المستخدمين الذين تم مصادقة هويتهم من قراءة البيانات أو كتابتها. للبدء بدون إعداد Firebase Authentication، يمكنك ضبط قواعدك للوصول العلني.
يؤدي ذلك إلى فتح Cloud Storage لأي مستخدم، حتى المستخدمين الذين لا يستخدمون تطبيقك، لذا احرص على حظر Cloud Storage مرة أخرى عند إعداد المصادقة.
إضافة حزمة تطوير البرامج (SDK) لمنصّة Cloud Storage إلى تطبيقك
من جذر مشروع 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 مع مستخدمين متعدّدين تمّت مصادقتهم في التطبيق نفسه
تكون حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمون في جميع أنحاء العالم وأردت تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء حِزم في الولايات المتحدة وأوروبا وآسيا لتخزين بيانات المستخدمين في تلك المناطق من أجل تقليل وقت الاستجابة.
تكون حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات تتضمّن أنماط وصول مختلفة. على سبيل المثال: يمكنك إعداد حزمة متعددة المناطق أو إقليمية لتخزين الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرر، وحزمة في مساحة التخزين المؤقت أو مساحة التخزين غير المتوفّرة بشكل دائم لتخزين النُسخ الاحتياطية للمستخدمين أو المحتوى الآخر الذي يتم الوصول إليه بشكل غير متكرر.
في أيّ من حالات الاستخدام هذه، عليك استخدام حِزم متعددة في Cloud Storage.
يكون سيناريو الاستخدام الثالث مفيدًا إذا كنت بصدد إنشاء تطبيق، مثل Google Drive، الذي يتيح للمستخدمين استخدام حسابات متعدّدة مسجّلة الدخول (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام مثيل تطبيق Firebase مخصّص لمصادقة كل حساب إضافي.
استخدام حِزم متعددة في 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
المضمّنة في
حزمة تطوير البرامج (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
تم إعداده باستخدام هذا التطبيق:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
الخطوات التالية
- الاستعداد لإطلاق تطبيقك:
- فعِّل ميزة فحص التطبيقات للمساعدة في التأكّد من أنّه يمكن لتطبيقاتك فقط الوصول إلى حِزم التخزين.
- إعداد تنبيهات بشأن الميزانية لمشروعك في Google Cloud Console
- يمكنك تتبُّع لوحة بيانات الاستخدام والفوترة في وحدة تحكُّم Firebase للحصول على صورة عامة عن استخدام مشروعك على مستوى خدمات Firebase المتعددة. يمكنك أيضًا الانتقال إلى لوحة بيانات استخدام Cloud Storage للاطّلاع على مزيد من المعلومات التفصيلية عن الاستخدام.
- راجِع قائمة التحقّق من إطلاق Firebase.