إنشاء نماذج أولية لتطبيقات الويب واختبارها باستخدام "محاكي استضافة Firebase"

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

ينبغي أيضًا أن تكون على دراية بالميزات وسير عمل التنفيذ لاستضافة Firebase. يمكنك البدء بمقدمة عن "استضافة Firebase".

ما الذي يمكنني فعله باستخدام محاكي استضافة Firebase؟

يوفّر محاكي استضافة Firebase محاكاة محلية عالية الدقة لخدمات الاستضافة، ما يوفّر الكثير من الوظائف الموجودة في استضافة الإنتاج. يتيح لك محاكي الاستضافة ما يلي:

  • إنشاء نماذج أولية للمواقع الإلكترونية الثابتة وتطبيقات الويب بدون تحمُّل تكاليف مساحة التخزين أو رسوم الوصول
  • إنشاء نماذج أولية لوظائف HTTPS واختبارها وتصحيح أخطائها قبل نشرها على "موقع الاستضافة الإلكتروني"
  • اختبِر المواقع الإلكترونية وتطبيقات الويب من خلال عمليات دمج شاملة ومتكاملة.

اختيار مشروع في Firebase

تحاكي "حزمة محاكي Firebase المحلي" المنتجات في مشروع واحد على Firebase.

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

تتيح "مجموعة أدوات المحاكاة المحلية" محاكاة مشاريع Firebase الحقيقية ومشاريع الإصدار التجريبي.

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

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

تتضمّن المشاريع الحقيقية موارد مباشرة، مثل مثيلات قاعدة البيانات أو حِزم التخزين أو الدوال أو أي مورد آخر يتم إعداده لهذا المشروع على Firebase.

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

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

تجريبي

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

تتضمّن أرقام تعريف المشاريع للمشاريع التجريبية البادئة demo-.

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

ننصحك باستخدام المشاريع التجريبية كلّما أمكن ذلك. تتضمّن المزايا ما يلي:

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

سير عمل النماذج الأوّلية الأساسية

إذا كنت تجري تكرارات سريعة أو تريد أن يتفاعل تطبيقك مع موارد مشروع الواجهة الخلفية التي تمت محاكاتها، فيمكنك اختبار محتوى الاستضافة والتهيئة محليًا. عند إجراء الاختبار محليًا، يعرض Firebase تطبيق الويب على عنوان URL مستضاف محليًا.

  1. (اختياري) سيتفاعل التطبيق المُستضاف محليًا تلقائيًا مع موارد المشروع الحقيقية وليست التي تتم محاكاتها (الدوال وقاعدة البيانات والقواعد وما إلى ذلك). يمكنك بدلاً من ذلك ربط تطبيقك اختياريًا لاستخدام أي موارد مشروع تم محاكاتها. مزيد من المعلومات: قاعدة بيانات في الوقت الفعلي | Cloud Firestore | Cloud Functions

  2. من جذر دليل المشروع المحلي، شغِّل الأمر التالي:

    firebase emulators:start
  3. افتح تطبيق الويب على عنوان URL المحلي الذي يعرضه واجهة سطر الأوامر (عادةً ما تكون http://localhost:5000).

  4. لتعديل عنوان URL المحلي من خلال التغييرات، عليك إعادة تحميل المتصفّح.

الاختبار من الأجهزة المحلية الأخرى

حسب الإعدادات التلقائية، لا تردّ المحاكيات إلا على الطلبات الواردة من localhost. وهذا يعني أنك ستتمكن من الوصول إلى المحتوى المستضاف من متصفّح الويب على جهاز الكمبيوتر، وليس من أجهزة أخرى على شبكتك. وإذا كنت تريد الاختبار من أجهزة محلية أخرى، عليك ضبط firebase.json على النحو التالي:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

إنشاء رموز المصادقة المميَّزة لسير عمل الدمج المستمر

إذا كانت عمليات سير عمل الدمج المتواصل تعتمد على "استضافة Firebase"، ستحتاج إلى تسجيل الدخول باستخدام رمز مميّز لتشغيل firebase emulators:exec. ولا تتطلب المحاكيات الأخرى تسجيل الدخول.

لإنشاء رمز مميّز، شغِّل firebase login:ci في بيئتك المحلية، ولا يجب تنفيذ هذا الإجراء من نظام CI. اتّبِع التعليمات للمصادقة. يجب أن تحتاج فقط إلى تنفيذ هذه الخطوة مرة واحدة لكل مشروع، لأن الرمز المميز سيكون صالحًا عبر الإصدارات. يجب التعامل مع الرمز المميّز ككلمة مرور، وتأكّد من الحفاظ على سريته.

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

كحل أخير، يمكنك ببساطة تضمين الرمز المميّز في النص البرمجي للإصدار، ولكن عليك التأكّد من عدم وصول الجهات غير الموثوق بها إلى هذا الرمز. بالنسبة إلى هذا الأسلوب غير الثابت، يمكنك إضافة --token "YOUR_TOKEN_STRING_HERE" إلى الأمر firebase emulators:exec.

ما هي الخطوات التالية؟