تتيح لك مساحة تخزين سحابية لـ Firebase تحميل المحتوى من إنشاء المستخدمين ومشاركته، مثل الصور والفيديوهات، ما يتيح لك إنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في حزمة Google Cloud Storage، وهي حل لتخزين الكائنات بسعة إكسابايت مع توفّر عالٍ وتكرار على مستوى العالم. تتيح لك خدمة "مساحة تخزين سحابية لـ Firebase" تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، كما تتيح لك التعامل مع الشبكات المتقطّعة بسهولة.
قبل البدء
إذا لم يسبق لك إجراء ذلك، تأكَّد من إكمال دليل بدء استخدام تطبيقات Flutter. ويشمل ذلك ما يلي:
إنشاء مشروع Firebase
تثبيت حِزم تطوير البرامج (SDK) لمنصّة Firebase في 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
إعداد إمكانية الوصول العلني
توفّر خدمة مساحة تخزين سحابية لـ Firebase لغة قواعد تعريفية تتيح لك تحديد طريقة تنظيم بياناتك وطريقة فهرسة بياناتك وتحديد الوقت الذي يمكن فيه قراءة بياناتك وكتابتها. بشكلٍ تلقائي، يكون الوصول للقراءة والكتابة إلى Cloud Storage محدودًا، وبالتالي لا يمكن إلا للمستخدمين الذين تم إثبات هويتهم قراءة البيانات أو كتابتها. للبدء بدون إعداد مصادقة Firebase، يمكنك ضبط قواعدك للسماح بالوصول العام.
يؤدي ذلك إلى إتاحة Cloud Storage لأي شخص، حتى الأشخاص الذين لا يستخدمون تطبيقك، لذا احرص على إعادة حصر الوصول إلى Cloud Storage عند إعداد المصادقة.
إضافة حزمة تطوير البرامج (SDK) الخاصة بخدمة Cloud Storage إلى تطبيقك
من جذر مشروع Flutter، نفِّذ الأمر التالي لتثبيت المكوّن الإضافي:
flutter pub add firebase_storageبعد الانتهاء، أعِد إنشاء تطبيق Flutter باتّباع الخطوات التالية:
flutter runاستورِد المكوّن الإضافي في رمز Dart:
import 'package:firebase_storage/firebase_storage.dart';
إعداد مساحة التخزين في السحابة الإلكترونية
نفِّذ الأمر
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 للمصادقة على كل حساب إضافي.
استخدام حِزم متعددة في 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 مخصّص
إذا كنت بصدد إنشاء تطبيق أكثر تعقيدًا باستخدام FirebaseApp مخصّص، يمكنك إنشاء مثيل من FirebaseStorage تم إعداده باستخدام هذا التطبيق:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
الخطوات التالية
- استعد لإطلاق تطبيقك باتّباع الخطوات التالية:
- فعِّل خدمة فحص التطبيقات للمساعدة في ضمان أنّ تطبيقاتك فقط هي التي يمكنها الوصول إلى حِزم التخزين.
- إعداد تنبيهات الميزانية لمشروعك في Google Cloud Console
- يمكنك الاطّلاع على لوحة بيانات الاستخدام والفوترة في "وحدة تحكّم Firebase" للحصول على صورة شاملة عن استخدام مشروعك لعدة خدمات من Firebase. يمكنك أيضًا الانتقال إلى لوحة بيانات استخدام Cloud Storage للحصول على مزيد من المعلومات التفصيلية حول الاستخدام.
- راجِع قائمة التحقّق من إطلاق Firebase.