Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

قم بتوصيل تطبيقك بـ Cloud Storage for Firebase Emulator

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

قبل توصيل تطبيقك بمحاكي Cloud Storage for Firebase ، تأكد من فهمك لسير عمل Firebase Local Emulator Suite الكلي ، وأنك تقوم بتثبيت وتهيئة Local Emulator Suite ومراجعة أوامر CLI الخاصة بها.

اختر مشروع Firebase

يحاكي Firebase Local Emulator Suite المنتجات لمشروع Firebase واحد.

لتحديد المشروع المراد استخدامه ، قبل بدء المحاكيات ، في CLI ، firebase use في دليل العمل الخاص بك. أو يمكنك تمرير علامة --project إلى كل أمر محاكي.

تدعم Local Emulator Suite محاكاة مشاريع Firebase الحقيقية والمشاريع التجريبية .

نوع المشروع سمات استخدم مع المحاكيات
حقيقة

مشروع Firebase الحقيقي هو أحد المشروعات التي أنشأتها وضبطتها (على الأرجح عبر وحدة تحكم Firebase).

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

عند العمل مع مشاريع Firebase الحقيقية ، يمكنك تشغيل برامج محاكاة لأي من المنتجات المدعومة أو جميعها.

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

تجريبي

لا يحتوي مشروع Firebase التجريبي على تهيئة Firebase حقيقية ولا موارد مباشرة. يتم الوصول إلى هذه المشاريع عادةً عبر مختبرات الرموز أو البرامج التعليمية الأخرى.

معرفات المشروع للمشاريع التجريبية لها demo- التجريبية.

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

نوصيك باستخدام المشاريع التجريبية حيثما أمكن ذلك. الفوائد تشمل:

  • إعداد أسهل ، حيث يمكنك تشغيل المحاكيات دون إنشاء مشروع Firebase
  • أمان أقوى ، نظرًا لأنه إذا كانت التعليمات البرمجية الخاصة بك تستدعي عن طريق الخطأ موارد (إنتاج) غير محاكية ، فلا توجد فرصة لتغيير البيانات والاستخدام والفوترة
  • دعم أفضل في وضع عدم الاتصال ، حيث لا توجد حاجة للوصول إلى الإنترنت لتنزيل تكوين SDK الخاص بك.

صك تطبيقك للتحدث مع المحاكيات

أنظمة Android و Apple و Web SDK

قم بإعداد التكوين داخل التطبيق أو فئات الاختبار للتفاعل مع Cloud Storage for Firebase emulator على النحو التالي.

ذكري المظهر
FirebaseStorage.getInstance().useEmulator("10.0.2.2", 9199);
سويفت
Storage.storage().useEmulator(withHost:"localhost", port:9199)
الويب v8
var storage = firebase.storage();
storage.useEmulator("localhost", 9199);
الويب الإصدار 9
import { getStorage, connectStorageEmulator } from "firebase/storage";

const storage = getStorage();
connectStorageEmulator(storage, "localhost", 9199);

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

SDKs للمشرف

تتصل مجموعات Firebase Admin SDK تلقائيًا بمحاكي Cloud Storage for Firebase عند تعيين متغير البيئة FIREBASE_STORAGE_EMULATOR_HOST :

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

لاحظ أن محاكي Cloud Functions يدرك تلقائيًا محاكي Cloud Storage for Firebase حتى تتمكن من تخطي هذه الخطوة عند اختبار عمليات الدمج بين Cloud Functions والتخزين السحابي لمحاكيات Firebase. سيتم تعيين متغير البيئة تلقائيًا لـ Admin SDK في Cloud Storage for Firebase.

إذا كنت تريد أن يتصل كود Admin SDK بمحاكي مشترك يعمل في بيئة أخرى ، فستحتاج إلى تحديد نفس معرف المشروع الذي قمت بتعيينه باستخدام Firebase CLI . يمكنك تمرير معرف المشروع initializeApp التطبيق مباشرة أو تعيين متغير البيئة GCLOUD_PROJECT .

Node.js Admin SDK
admin.initializeApp({ projectId: "your-project-id" });
متغيرات البيئة
export GCLOUD_PROJECT="your-project-id"

استيراد وتصدير البيانات

تسمح لك قاعدة البيانات والتخزين السحابي لمحاكيات Firebase بتصدير البيانات من مثيل محاكي قيد التشغيل. حدد مجموعة أساسية من البيانات لاستخدامها في اختبارات الوحدة الخاصة بك أو مهام سير عمل التكامل المستمر ، ثم قم بتصديرها لمشاركتها بين الفريق.

firebase emulators:export ./dir

في الاختبارات ، عند بدء تشغيل المحاكي ، قم باستيراد البيانات الأساسية.

firebase emulators:start --import=./dir

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

firebase emulators:start --import=./dir --export-on-exit

تعمل خيارات استيراد وتصدير البيانات هذه مع firebase emulators:exec أيضًا. لمزيد من المعلومات ، راجع مرجع أمر المحاكي .

كيف يختلف Cloud Storage لمحاكي Firebase عن الإنتاج

لاختبار تطبيقات العميل ، يتماشى التخزين السحابي لمحاكي Firebase مع الإنتاج بشكل مثالي تقريبًا فيما يتعلق بمنطقة سطح Firebase API. من المتوقع أن تعمل جميع أوامر Firebase بين حزم Firebase SDK العادية (أنظمة الويب و Android و Apple).

لاختبار التطبيقات من جانب الخادم ، توجد قيود. تستخدم تطبيقات Firebase Admin SDK سطح Google Cloud API ، ولا تتم محاكاة جميع نقاط النهاية لواجهة برمجة التطبيقات هذه. كقاعدة عامة ، يتم أيضًا تنفيذ أي شيء يمكن القيام به من حزم SDK للعميل (تحميل الملفات أو حذفها ، والحصول على البيانات الوصفية وتعيينها) للاستخدام من حزم SDK الخاصة بالمسؤول ، ولكن لا يتم تنفيذ أي شيء يتجاوز ذلك. الاستثناءات البارزة مذكورة أدناه.

الاختلافات من Google Cloud Storage

يوفر منتج Cloud Storage for Firebase ، بما في ذلك محاكي التخزين ، مجموعة فرعية من وظائف Google Cloud Storage (GCS) التي تركز على كائنات التخزين المفيدة جدًا لتطوير تطبيقات Firebase. يختلف Cloud Storage for Firebase عن GCS بالطرق التالية:

  • لا يدعم Cloud Storage for Firebase حاليًا Bucket APIs لإنشاء مجموعات التخزين أو إدراجها أو الحصول عليها أو حذفها.
  • من Google Cloud Storage Objects API ، يتم دعم الطرق التالية: copy ، delete ، get ، insert ، list ، patch ، rewrite ، update .

سحابة IAM

لا يحاول Firebase Emulator Suite تكرار أو احترام أي سلوك متعلق بـ IAM للتشغيل. تلتزم المحاكيات بقواعد أمان Firebase المقدمة ، ولكن في المواقف التي يتم فيها استخدام IAM عادةً ، على سبيل المثال لتعيين وظائف السحابة التي تستدعي حساب الخدمة وبالتالي الأذونات ، فإن المحاكي غير قابل للتكوين وسيستخدم الحساب المتوفر عالميًا على جهاز المطور الخاص بك ، مشابه لتشغيل برنامج نصي محلي مباشرة.

إخطارات الحانة / الفرعية

لا يتكامل محاكي Cloud Storage for Firebase مع محاكي Cloud Pub / Sub وبالتالي لا يدعم إنشاء قنوات / إشعارات لتغييرات كائن التخزين. نوصي باستخدام مشغلات Cloud Functions Storage مباشرة.

البيانات الوصفية على مستوى الحاوية

لا يدعم محاكي Cloud Storage for Firebase أي تكوين على مستوى الحاوية بما في ذلك فئة التخزين أو تكوين CORS على مستوى الحاوية أو الملصقات أو سياسات الاحتفاظ. يعتزم Firebase تحسين هذا الدعم بمرور الوقت.

ماذا بعد؟

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