قبل استخدام محاكي Authentication مع تطبيقك، تأكَّد من أنك تفهم سير العمل العام Firebase Local Emulator Suite، ومن أنك تثبّت وتضبط Local Emulator Suite وتراجع أوامر واجهة سطر الأوامر الخاصة بها.
يفترض هذا الموضوع أنّك على دراية مسبقة بتطوير Firebase Authentication حلول للبيئة الإنتاجية. إذا لزم الأمر، راجِع مستندات مجموعة النظام الأساسي وتقنية المصادقة التي تستخدمها لـ .
ما الذي يمكنني فعله باستخدام محاكي Authentication؟
يوفر المحاكي Authentication محاكاة محلية عالية الدقة لـ Firebase Authentication الخدمات، مما يوفر الكثير من الوظائف الموجودة في الإنتاج Firebase Authentication. عند إقران المحاكي بحِزم تطوير البرامج (SDK) من Firebase لمنصّات Apple وAndroid والويب، يتيح لك المحاكي ما يلي:
- إنشاء حسابات مستخدمين محاكاة وتعديلها وإدارتها لاختبار المصادقة باستخدام البريد الإلكتروني/كلمة المرور ورقم الهاتف/الرسائل القصيرة والمصادقة المتعدّدة العوامل عبر الرسائل القصيرة وموفِّر الهوية التابع لجهة خارجية (مثل Google)
- عرض المستخدمين المحاكاة وتعديلهم
- إنشاء نماذج أولية لأنظمة مصادقة الرموز المميّزة المخصّصة
- الاطّلاع على الرسائل المتعلقة بالمصادقة في علامة التبويب "سجلات واجهة مستخدم المحاكي"
اختيار مشروع Firebase
تحاكي Firebase Local Emulator Suite المنتجات لمشروع Firebase واحد.
لاختيار المشروع الذي تريد استخدامه، شغِّل الأمر firebase use في دليل العمل قبل بدء المحاكيات في واجهة سطر الأوامر. يمكنك أيضًا تمرير
العلامة --project إلى كل أمر من أوامر المحاكي.
Local Emulator Suite تتيح محاكاة مشاريع Firebase الحقيقية و مشاريع العرض التوضيحي.
| نوع المشروع | الميزات | الاستخدام مع المحاكيات |
|---|---|---|
| حقيقي |
مشروع Firebase حقيقي هو مشروع أنشأته وأعددته (على الأرجح عبر وحدة تحكّم Firebase). تتضمّن المشاريع الحقيقية موارد نشطة، مثل مثيلات قاعدة البيانات أو مساحات التخزين أو الدوال أو أي مورد آخر أعددته لمشروع Firebase هذا. |
عند العمل مع مشاريع Firebase الحقيقية، يمكنك تشغيل المحاكيات لأي من المنتجات المتوافقة أو جميعها. بالنسبة إلى أي منتجات لا تحاكيها، ستتفاعل تطبيقاتك ورمزك مع المورد النشط (مثيل قاعدة البيانات أو مساحة التخزين أو الدالة وما إلى ذلك). |
| عرض توضيحي |
لا يتضمّن مشروع Firebase التجريبي أي إعداد حقيقي لـ Firebase و لا يتضمّن أي موارد نشطة. يمكن الوصول إلى هذه المشاريع عادةً من خلال المختبرات البرمجية أو البرامج التعليمية الأخرى. تتضمّن معرّفات المشاريع لمشاريع العرض التوضيحي البادئة |
عند العمل مع مشاريع Firebase التجريبية، تتفاعل تطبيقاتك ورمزك مع المحاكيات فقط. إذا حاول تطبيقك التفاعل مع مورد لا يتم تشغيل محاكي له، سيتعذّر تنفيذ هذا الرمز. |
ننصحك باستخدام مشاريع العرض التوضيحي كلما أمكن ذلك. تتضمّن المزايا ما يلي:
- إعداد أسهل، لأنّه يمكنك تشغيل المحاكيات بدون إنشاء مشروع Firebase على الإطلاق
- أمان أقوى، لأنّه إذا استدعى الرمز عن طريق الخطأ موارد غير محاكاة (إنتاجية)، لن يكون هناك أي احتمال لتغيير البيانات أو الاستخدام أو الفوترة
- دعم أفضل بلا إنترنت، لأنّه ليست هناك حاجة إلى الوصول إلى الإنترنت لتنزيل إعداد حزمة تطوير البرامج (SDK)
إعداد تطبيقك للتواصل مع المحاكي
حِزم تطوير البرامج (SDK) لمنصّات Android وiOS والويب
يمكنك إعداد الإعدادات داخل التطبيق أو فئات الاختبار للتفاعل مع Authentication المحاكي على النحو التالي.
Kotlin
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)
Unity
FirebaseAuth auth = FirebaseAuth.DefaultInstance; // Connects to the Auth Emulator running on port 9099 auth.UseEmulator("127.0.0.1", 9099);
Web
import { getAuth, connectAuthEmulator } from "firebase/auth"; const auth = getAuth(); connectAuthEmulator(auth, "http://127.0.0.1:9099");
Web
const auth = firebase.auth(); auth.useEmulator("http://127.0.0.1:9099");
لا يلزم إجراء أي إعداد إضافي لإنشاء نماذج أولية واختبار التفاعلات بين Authentication و Cloud Functions أو Firebase Security Rules لـ Cloud Firestore أو Realtime Database. عند إعداد محاكي Authentication وتشغيل المحاكيات الأخرى ، ستعمل معًا تلقائيًا.
Admin SDK ثوانٍ
تتصل Firebase Admin SDK تلقائيًا بمحاكي Authentication عند ضبط متغيّر البيئة
FIREBASE_AUTH_EMULATOR_HOST.
export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"
يُرجى العِلم أنّ محاكي Cloud Functions على دراية تلقائيًا بمحاكي Authentication، لذا يمكنك تخطّي هذه الخطوة عند اختبار عمليات الدمج بين Cloud Functions وAuthentication سيتم ضبط متغيّر البيئة تلقائيًا لـ Admin SDK في Cloud Functions.
عند ضبط متغيّر البيئة، ستقبل Firebase Admin SDK الرموز المميّزة لمعرّف المستخدم غير الموقَّعة وملفات تعريف ارتباط الجلسة التي يصدرها محاكي Authentication (من خلال الطريقتَين verifyIdToken
و createSessionCookie على التوالي) لتسهيل التطوير
والاختبار محليًا. يُرجى التأكّد من عدم ضبط متغيّر البيئة في البيئة الإنتاجية.
إذا كنت تريد أن يتصل رمز Admin SDK الخاص بك بمحاكي مشترك قيد التشغيل في بيئة أخرى، عليك تحديد رقم تعريف المشروع نفسه الذي ضبطته باستخدام Firebase CLI. يمكنك تمرير رقم تعريف المشروع إلى initializeApp مباشرةً أو ضبط متغيّر البيئة GCLOUD_PROJECT.
حزمة تطوير البرامج (SDK) للمشرف من Node.js
admin.initializeApp({ projectId: "your-project-id" });
متغيّر البيئة
export GCLOUD_PROJECT="your-project-id"
الرموز المميّزة لمعرّف المستخدم
لأسباب أمنية، يصدر محاكي Authentication رموزًا مميّزة لمعرّف المستخدم غير موقَّعة، ولا تقبلها إلا محاكيات Firebase الأخرى أو حزمة تطوير البرامج (SDK) للمشرف من Firebase عند إعدادها. سيتم رفض هذه الرموز المميّزة من قِبل خدمات Firebase الإنتاجية أو حزمة تطوير البرامج (SDK) للمشرف من Firebase قيد التشغيل في الوضع الإنتاجي (على سبيل المثال، السلوك التلقائي بدون خطوات الإعداد الموضّحة أعلاه).
بدء المحاكي
يمكنك استخدام محاكي Authentication بشكلٍ تفاعلي من خلال Emulator Suite UI وبشكلٍ غير تفاعلي من خلال واجهة REST المحلية. تتناول الأقسام التالية حالات الاستخدام التفاعلية وغير التفاعلية.
لبدء محاكي Authentication وواجهة REST و Emulator Suite UI، نفِّذ ما يلي:
firebase emulators:start
المصادقة المحاكاة باستخدام البريد الإلكتروني ورابط البريد الإلكتروني والمصادقة المجهولة
بالنسبة إلى المصادقة المجهولة، يمكن لتطبيقك استخدام منطق تسجيل الدخول لمنصّتك (iOS أو Android أو الويب).
بالنسبة إلى المصادقة باستخدام البريد الإلكتروني/كلمة المرور، يمكنك بدء إنشاء نموذج أولي من خلال إضافة حسابات مستخدمين إلى المحاكي Authentication من تطبيقك باستخدام طرق حزمة تطوير البرامج (SDK) Authentication، أو باستخدام Emulator Suite UI.
- في Emulator Suite UI، انقر على علامة التبويب المصادقة.
- انقر على الزر إضافة مستخدم.
- اتّبِع معالج إنشاء حساب المستخدم، مع ملء حقول المصادقة عبر البريد الإلكتروني.
بعد إنشاء مستخدم تجريبي، يمكن لتطبيقك تسجيل دخول المستخدم وخروجه باستخدام منطق حزمة تطوير البرامج (SDK) لمنصّتك (iOS، Android، الويب).
لاختبار عمليات تأكيد عنوان البريد الإلكتروني/تسجيل الدخول باستخدام مسارات روابط البريد الإلكتروني، يطبع المحاكي عنوان URL في الجهاز الذي تم فيه تنفيذ firebase emulators:start.
i To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-keyالصِق الرابط في متصفّحك لمحاكاة حدث التحقّق، وتحقّق مما إذا نجحت عملية التحقّق.
{
"authEmulator": {
"success": "The email has been successfully verified.",
"email": "customer@example.com"
}
}
لاختبار عمليات إعادة ضبط كلمة المرور، يطبع المحاكي عنوان URL مشابهًا في الجهاز، بما في ذلك المَعلمة newPassword (التي يمكنك تغييرها حسب الحاجة).
http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORDالاختبار غير التفاعلي
بدلاً من استخدام Emulator Suite UI أو رمز العميل لإدارة حسابات المستخدمين باستخدام البريد الإلكتروني/كلمة المرور ، يمكنك كتابة نصوص إعداد الاختبار التي تستدعي واجهات برمجة تطبيقات REST لإنشاء حسابات المستخدمين وحذفها وجلب رموز التحقّق من البريد الإلكتروني خارج النطاق لتعبئة عنوان URL للتحقّق من البريد الإلكتروني في المحاكي. يؤدي ذلك إلى فصل النظام الأساسي ورمز الاختبار، ويسمح لك بإجراء الاختبار بشكلٍ غير تفاعلي.
بالنسبة إلى مسارات اختبار البريد الإلكتروني وكلمة المرور غير التفاعلية، يكون التسلسل المعتاد على النحو التالي:
- إنشاء مستخدمين باستخدام Authentication نقطة نهاية REST لـ `signUp`.
- تسجيل دخول المستخدمين باستخدام عناوين البريد الإلكتروني وكلمات المرور لإجراء الاختبارات
- إذا كان ذلك منطبقًا على اختباراتك، يمكنك جلب رموز التحقّق من تأكيد عنوان البريد الإلكتروني خارج النطاق المتاحة من نقطة نهاية REST الخاصة بالمحاكي.
- إزالة سجلّات المستخدمين باستخدام نقطة نهاية REST الخاصة بالمحاكي لمسح البيانات
المصادقة المحاكاة باستخدام الهاتف/الرسائل القصيرة
بالنسبة إلى المصادقة باستخدام الهاتف، لا يتيح محاكي "المصادقة" ما يلي:
- مسارات reCAPTCHA وAPN بعد إعداد حِزم تطوير البرامج (SDK) للعميل للتفاعل مع المحاكي، يتم إيقاف طرق التحقّق هذه بطريقة مشابهة للطريقة الموضّحة لاختبار التكامل (iOS أو Android أو الويب).
- أرقام الهواتف التجريبية التي تم إعداد رموزها مسبقًا في وحدة تحكّم Firebase
في ما عدا ذلك، يكون مسار المصادقة باستخدام الهاتف/الرسائل القصيرة مطابقًا للمسار الموضّح للبيئة الإنتاجية (iOS أو Android أو الويب) من حيث رمز العميل.
باستخدام Emulator Suite UI
- في Emulator Suite UI، انقر على علامة التبويب المصادقة.
- انقر على الزر إضافة مستخدم.
- اتّبِع معالج إنشاء حساب المستخدم، مع ملء حقول المصادقة باستخدام الهاتف.
ومع ذلك، بالنسبة إلى مسارات المصادقة باستخدام الهاتف، لن يشغِّل المحاكي عملية تسليم أي رسائل نصية، لأنّ التواصل مع شركة الاتصالات خارج النطاق وليس مناسبًا للاختبار المحلي. بدلاً من ذلك، يطبع المحاكي الرمز الذي كان سيتم إرساله عبر الرسائل القصيرة إلى الجهاز نفسه الذي شغّلت عليه firebase emulators:start، ويجب إدخال هذا الرمز في التطبيق لمحاكاة المستخدمين الذين يطّلعون على رسائلهم النصية.
الاختبار غير التفاعلي
لاختبار المصادقة باستخدام الهاتف بشكلٍ غير تفاعلي، استخدِم محاكي Authentication REST API لاسترداد رموز الرسائل القصيرة المتاحة. يُرجى العِلم أنّ الرمز يختلف في كل مرة تبدأ فيها المسار.
التسلسل المعتاد هو كما يلي:
- استدعِ
signInWithPhoneNumberعلى النظام الأساسي لبدء عملية التحقّق. - استرداد رمز التحقّق باستخدام نقطة نهاية REST الخاصة بالمحاكي.
- استدعِ
confirmationResult.confirm(code)كالمعتاد باستخدام رمز التحقّق.
المصادقة المتعدّدة العوامل عبر الرسائل القصيرة
يتيح محاكي Authentication إنشاء نماذج أولية واختبار مسارات المصادقة المتعدّدة العوامل عبر الرسائل القصيرة (MFA) المتوفّرة في البيئة الإنتاجية لمنصّات iOS وAndroid والويب.
عند إضافة مستخدم وهمي إلى المحاكي، يمكنك تفعيل المصادقة المتعدّدة العوامل وضبط رقم هاتف واحد أو أكثر سيتم إرسال رسائل SMS التي تتضمّن العامل الثاني إليها. يتم عرض الرسائل في الجهاز نفسه الذي شغّلت عليه firebase emulators:start، وتتوفّر من واجهة REST.
المصادقة المحاكاة باستخدام موفِّر الهوية التابع لجهة خارجية
يتيح لك محاكي Authentication اختبار العديد من مسارات المصادقة التابعة لجهات خارجية في تطبيقاتك على iOS أو Android أو الويب بدون إجراء أي تغييرات على الرمز الإنتاجي. للاطّلاع على أمثلة على مسارات المصادقة، يُرجى الرجوع إلى مستندات مجموعات موفّري الخدمات والأنظمة الأساسية المختلفة التي يمكنك استخدامها في تطبيقك.
بشكلٍ عام، يمكنك استخدام حزمة تطوير البرامج (SDK) من Firebase للمصادقة بإحدى الطريقتَين التاليتَين:
- يسمح تطبيقك لحزمة تطوير البرامج (SDK) بمعالجة العملية بأكملها من البداية إلى النهاية، بما في ذلك جميع التفاعلات مع موفّري الهوية التابعين لجهات خارجية لاسترداد بيانات الاعتماد.
- يسترد تطبيقك بيانات الاعتماد يدويًا من موفِّر تابع لجهة خارجية باستخدام حزمة تطوير البرامج (SDK) الخاصة بتلك الجهة، ويمرر هذه البيانات إلى حزمة تطوير البرامج (SDK) الخاصة بـ Authentication.
مرة أخرى، يُرجى الاطّلاع على رابط المستندات أعلاه والتأكّد من أنّك على دراية بأي مسار تريد استخدامه، سواء كان مسار استرداد بيانات الاعتماد الذي تديره حزمة تطوير البرامج (SDK) من Firebase أو مسار استرداد بيانات الاعتماد اليدوي. يتيح محاكي Authentication اختبار أي من الطريقتَين.
اختبار مسارات موفِّر الهوية التي تستند إلى حزمة تطوير البرامج (SDK) من Firebase
إذا كان تطبيقك يستخدم أي مسار من البداية إلى النهاية في Firebase SDK، مثل OAuthProvider لتسجيل الدخول باستخدام Microsoft أو GitHub أو Yahoo، يقدّم محاكي Authentication إصدارًا محليًا من صفحة تسجيل الدخول المقابلة لمساعدتك في اختبار المصادقة من تطبيقات الويب التي تستدعي الطريقتَين signinWithPopup أو signInWithRedirect لإجراء اختبار تفاعلي. تظهر صفحة تسجيل الدخول التي يتم عرضها محليًا أيضًا في تطبيقات الأجهزة الجوّالة، ويتم عرضها من خلال مكتبة عرض الويب الخاصة بمنصّتك.
ينشئ المحاكي حسابات مستخدمين وبيانات اعتماد وهمية تابعة لجهات خارجية حسب الحاجة أثناء تقدّم المسارات.
اختبار مسارات موفِّر الهوية باستخدام استرداد بيانات الاعتماد يدويًا
إذا كنت تستخدم تقنيات تسجيل الدخول "اليدوية" وتستدعي الطريقة signInWithCredentials الخاصة بمنصّتك، سيطلب تطبيقك كالمعتاد تسجيل الدخول الحقيقي من جهة خارجية ويسترد بيانات الاعتماد الحقيقية من جهة خارجية.
يُرجى العِلم أنّ المحاكي لا يتيح المصادقة باستخدام signInWithCredential إلا لبيانات الاعتماد التي يتم استردادها من "تسجيل الدخول باستخدام حساب Google" وApple وموفّري الخدمات الآخرين الذين يستخدمون الرموز المميّزة لمعرّف المستخدم التي يتم تنفيذها كرموز JSON المميّزة للويب (JWT). لا يتم قبول رموز الوصول (مثل الرموز التي يقدّمها Facebook أو Twitter، والتي ليست رموز JSON المميّزة للويب). يناقش القسم التالي بديلاً في هذه الحالات.
الاختبار غير التفاعلي
أحد أساليب الاختبار غير التفاعلي هو أتمتة نقرات المستخدمين على صفحة تسجيل الدخول التي يعرضها المحاكي. بالنسبة إلى تطبيقات الويب، استخدِم واجهة تحكّم مثل WebDriver. بالنسبة إلى الأجهزة الجوّالة، استخدِم أدوات اختبار واجهة المستخدم من منصّتك، مثل Espresso أو Xcode.
بدلاً من ذلك، يمكنك تعديل الرمز لاستخدام signInWithCredential (على سبيل المثال، في فرع رمز) واستخدام مسار مصادقة الرموز المميّزة مع رموز مميّزة لمعرّف المستخدم وهمية للحسابات بدلاً من بيانات الاعتماد الحقيقية.
- أعِد ربط الجزء من الرمز الذي يسترد رموز idToken من موفِّر الهوية أو علِّقه، ما يزيل الحاجة إلى إدخال أسماء المستخدمين وكلمات المرور الحقيقية أثناء الاختبارات، ويخفّف عن اختباراتك الحصص ونسب الاستخدام القصوى لواجهة برمجة التطبيقات في موفِّر الهوية.
- ثانيًا، استخدِم سلسلة JSON حرفية بدلاً من الرمز المميّز لـ
signInWithCredential. باستخدام حزمة تطوير البرامج (SDK) للويب كمثال، يمكنك تغيير الرمز إلى:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
'{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));
عند استخدام هذا الرمز مع المحاكي، سيتم بنجاح مصادقة مستخدم لديه عنوان البريد الإلكتروني foo@example.com على Google. يمكنك اعتبار الحقل الفرعي مفتاحًا أساسيًا، ويمكن تغييره إلى أي سلسلة، ما يحاكي تسجيل دخول مستخدمين مختلفين. يمكنك
استبدال firebase.auth.GoogleAuthProvider بـ، على سبيل المثال،
new firebase.auth.OAuthProvider('yahoo.com') أو أي معرّف موفِّر آخر تريد
محاكاته.
المصادقة المحاكاة باستخدام الرموز المميّزة المخصّصة
يتعامل محاكي Authentication مع المصادقة باستخدام رموز JSON المميّزة للويب المخصّصة من خلال
استدعاء الطريقة signInWithCustomToken على الأنظمة الأساسية المتوافقة، كما هو موضّح
في مستندات البيئة الإنتاجية Authentication.
أوجه الاختلاف بين محاكي Authentication والبيئة الإنتاجية
يحاكي محاكي Authentication "مصادقة Firebase" العديد من ميزات المنتج في البيئة الإنتاجية. ومع ذلك، بما أنّ أي نوع من أنظمة المصادقة يعتمد بشكلٍ كبير على الأمان على مستويات متعددة (الجهاز وموفّرو الخدمات الخارجيون وFirebase وما إلى ذلك)، يصعب على المحاكي إعادة إنشاء جميع المسارات بشكلٍ صحيح.
Cloud IAM
لا تحاول "مجموعة المحاكيات المحلية من Firebase" تكرار أي سلوك متعلق بإدارة الهوية وإمكانية الوصول أو الالتزام به عند التشغيل. تلتزم المحاكيات بقواعد أمان Firebase المقدَّمة، ولكن في الحالات التي يتم فيها عادةً استخدام "إدارة الهوية وإمكانية الوصول"، على سبيل المثال لضبط حساب الخدمة الذي يستدعي "الدوال السحابية" وبالتالي الأذونات، لا يمكن إعداد المحاكي وسيستخدم الحساب المتاح على مستوى العالم على جهاز المطوّر، على غرار تشغيل نص برمجي محلي مباشرةً.
تسجيل الدخول عبر رابط البريد الإلكتروني على الأجهزة الجوّالة
بما أنّ تسجيل الدخول عبر رابط البريد الإلكتروني على منصّات الأجهزة الجوّالة يعتمد على روابط Firebase الديناميكية، سيتم فتح جميع هذه الروابط على منصّة الويب (للأجهزة الجوّالة) بدلاً من ذلك.
طلبات تسجيل الدخول من خدمات الجهات الخارجية
بالنسبة إلى مسارات تسجيل الدخول من خدمات الجهات الخارجية، تعتمد Firebase Authentication على بيانات الاعتماد الآمنة من موفّري الخدمات الخارجيين، مثل Twitter وGithub.
يقبل محاكي Authentication بيانات الاعتماد الحقيقية من موفّري خدمات OpenID Connect، مثل Google وApple. بيانات الاعتماد من موفّري الخدمات غير المتوافقين مع OpenID Connect غير متاحة.
تسجيل الدخول باستخدام البريد الإلكتروني / الرسائل القصيرة
في التطبيقات الإنتاجية، تتضمّن مسارات تسجيل الدخول باستخدام البريد الإلكتروني والرسائل القصيرة عملية غير متزامنة يطّلع فيها المستخدم على رسالة تم تلقّيها ويدخل رمز تسجيل الدخول في واجهة تسجيل الدخول. لا يرسل محاكي Authentication أي رسائل إلكترونية أو رسائل SMS ، ولكن كما هو موضّح أعلاه، ينشئ رموز تسجيل الدخول ويعرضها في الجهاز لاستخدامها في الاختبار.
لا يتيح المحاكي إمكانية تحديد أرقام هواتف تجريبية باستخدام رموز تسجيل دخول ثابتة، كما يمكن إجراء ذلك باستخدام وحدة تحكّم Firebase.
المصادقة باستخدام الرموز المميّزة المخصّصة
لا يتحقّق محاكي Authentication من التوقيع أو انتهاء صلاحية الرموز المميّزة المخصّصة. يتيح لك ذلك استخدام الرموز المميّزة التي تم إنشاؤها يدويًا وإعادة استخدام الرموز المميّزة إلى أجل غير مسمّى في سيناريوهات إنشاء النماذج الأولية والاختبار.
الحدّ من المعدّل / مكافحة إساءة الاستخدام
لا يكرّر محاكي Authentication ميزات الحدّ من المعدّل أو مكافحة إساءة الاستخدام في البيئة الإنتاجية.
الدوال التي تحظر المستخدمين
في البيئة الإنتاجية، يتم تسجيل المستخدمين في مساحة التخزين مرة واحدة بعد تشغيل الحدثَين beforeCreate وbeforeSignIn. ومع ذلك، بسبب القيود الفنية،
يسجّل محاكي Authenticationفي مساحة التخزين مرّتَين، مرة بعد إنشاء المستخدم و
مرة أخرى بعد تسجيل الدخول. يعني ذلك أنّه بالنسبة إلى المستخدمين الجدد، يمكنك استدعاء
getAuth().getUser() بنجاح في beforeSignIn في محاكي Authentication، ولكن سيظهر لك
خطأ عند إجراء ذلك في البيئة الإنتاجية.
ما هي الخطوات التالية؟
للاطّلاع على مجموعة منسّقة من الفيديوهات والأمثلة التفصيلية، يُرجى اتّباع قائمة تشغيل التدريب على محاكيات Firebase.
بما أنّ الدوال التي يتم تشغيلها هي عملية دمج نموذجية مع Authentication، يمكنك الاطّلاع على مزيد من المعلومات عن محاكي "وظائف Firebase السحابية" في مقالة تشغيل الدوال محليًا.