بدء استخدام Cloud Storage لـ C++

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

قبل البدء

لاستخدام Cloud Storage، عليك إجراء ما يلي:

  • سجّل مشروع C++ الخاص بك واضبطه لاستخدام Firebase.

    إذا كان مشروعك المكتوب بلغة C++ يستخدم Firebase، يعني ذلك أنّه سبق أن تم تسجيله و إعداده لاستخدام Firebase.

  • أضِف حزمة تطوير البرامج Firebase C++ SDK إلى مشروع C++.

يُرجى العِلم أنّ إضافة Firebase إلى مشروع C++ الخاص بك تتطلّب تنفيذ مهام في كلّ من وحدة تحكّم Firebase ومشروع C++ المفتوح (على سبيل المثال، يمكنك تنزيل ملفات إعدادات Firebase من وحدة التحكّم، ثم نقلها إلى مشروع C++ الخاص بك).

تأكَّد أيضًا من أنّ مشروعك على Firebase يستخدم خطة أسعار Blaze المستندة إلى الدفع حسب الاستخدام. إذا كنت مستخدِمًا جديدًا لـ Firebase وGoogle Cloud، تحقّق ممّا إذا كنت مؤهّلاً للحصول على رصيد بقيمة 300 دولار أمريكي.

إنشاء حزمة Cloud Storage تلقائية

  1. من لوحة التنقّل في وحدة تحكّم Firebase، اختَر مساحة التخزين.

    إذا لم يكن مشروعك مشتركًا في خطة أسعار Blaze المستندة إلى الدفع عند الاستخدام بعد، سيتم إعلامك بضرورة ترقية مشروعك.

  2. انقر على البدء.

  3. اختَر موقعًا جغرافيًا لحزمتك التلقائية.

  4. اضبط Firebase Security Rules للحزمة التلقائية. أثناء التطوير، ننصحك بإعداد قواعد الوصول العلني.

  5. انقر على تم.

يمكنك الآن عرض الحزمة في علامة التبويب Cloud Storage الملفات في وحدة تحكّم Firebase. تنسيق اسم الحزمة التلقائي هو PROJECT_ID.firebasestorage.app.

إعداد إتاحة الوصول للجميع

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

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

إنشاء firebase::App وإعداده

قبل أن تتمكّن من الوصول إلى Cloud Storage، عليك إنشاء firebase::App وبدء تشغيله.

أدرِج ملف الرأس الخاص بـ firebase::App:

#include "firebase/app.h"

Android

أنشئ firebase::App، مع تمرير بيئة JNI وjobject إشارة إلى نشاط Java كوسيطات:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

أنشئ firebase::App:

app = App::Create(AppOptions());

الوصول إلى الصف firebase::storage::Storage

فئة firebase::storage::Storage هي نقطة الدخول لحزمة Cloud Storage C++ SDK.

Storage* storage = Storage::GetInstance(app);

يمكنك الآن بدء استخدام Cloud Storage.

الخطوة التالية؟ تعرَّف على كيفية إنشاء مرجع Cloud Storage.

الإعداد المتقدّم

هناك بعض حالات الاستخدام التي تتطلّب إجراء إعدادات إضافية:

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

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

في أيّ من حالات الاستخدام هذه، عليك استخدام حِزم Cloud Storage متعددة.

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

استخدام حِزم Cloud Storage متعدّدة

إذا كنت تريد استخدام حزمة Cloud Storage غير الحزمة التلقائية المقدَّمة أعلاه، أو استخدام حِزم Cloud Storage متعددة في تطبيق واحد، يمكنك إنشاء مثيل لـ firebase::storage::Storage يشير إلى حِزمك المخصّصة:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("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://BUCKET_NAME

يمكنك العثور على رقم مشروعك كما هو موضّح في مقدّمة عن مشاريع Firebase.

ولا يؤثر ذلك في الحِزم التي تم إنشاؤها حديثًا، لأنّها تم ضبط التحكّم التلقائي في الوصول إليها للسماح لخدمة Firebase. هذا إجراء مؤقت، وسيتم تنفيذه تلقائيًا في المستقبل.

استخدام تطبيق Firebase مخصّص

إذا كنت بصدد إنشاء تطبيق أكثر تعقيدًا باستخدام firebase::App مخصّص، يمكنك إنشاء مثيل من firebase::storage::Storage تم إعداده باستخدام هذا التطبيق:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

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