قبل استخدام محاكي Authentication مع تطبيقك، تأكَّد من فهم سير عمل Firebase Local Emulator Suite العام، وتثبيت Local Emulator Suite وضبطه ومراجعة أوامر سطر الأوامر.
يفترض هذا الموضوع أنّك على دراية بتطوير حلول Firebase Authentication للنشر. راجِع المستندات لمزيج المنصة وأسلوب المصادقة إذا لزم الأمر.
ما الذي يمكنني فعله باستخدام محاكي Authentication؟
يوفّر المحاكي Authentication محاكاة محلية عالية الدقة لخدمات Firebase Authentication، ما يوفّر الكثير من الوظائف المتوفرة في الإنتاج Firebase Authentication. بالإضافة إلى منصات Apple، وحِزم SDK لنظامَي التشغيل Android وWeb من Firebase، يتيح لك المحاكي إجراء ما يلي:
- إنشاء حسابات مستخدمين محاكية وتعديلها وإدارتها لاختبار مصادقة موفِّر الهوية (مثل Google) من خلال البريد الإلكتروني/كلمة المرور، و/أو رقم الهاتف/الرسائل القصيرة، و/أو المصادقة المتعدّدة العوامل من خلال الرسائل القصيرة
- عرض المستخدمين المحاكيين وتعديلهم
- أنظمة مصادقة الرموز المميزة المخصصة للنماذج الأولية
- راجِع الرسائل المتعلّقة بالمصادقة في علامة التبويب "سجلّات واجهة المستخدم للمحاكي".
اختيار مشروع في Firebase
تحاكي Firebase Local Emulator Suite المنتجات لمشروع واحد على Firebase.
لاختيار المشروع الذي تريد استخدامه، قبل بدء المحاكيات، يمكنك تشغيل firebase use
في سطر الأوامر في دليل العمل. أو يمكنك تمرير العلامة --project
إلى كل أمر مخصّص للمحاكي.
Local Emulator Suite يتيح محاكاة مشاريع حقيقية ومشاريع تجريبية على Firebase.
نوع المشروع | الميزات | الاستخدام مع المحاكيات |
---|---|---|
حقيقي |
مشروع Firebase الحقيقي هو المشروع الذي أنشأته وضبطته (على الأرجح من خلال وحدة تحكّم Firebase). تحتوي المشاريع الحقيقية على موارد نشطة، مثل نُسخ قاعدة البيانات أو حِزم التخزين أو الدوالّ أو أيّ مورد آخر أعددته لهذا المشروع على Firebase. |
عند العمل مع مشاريع Firebase حقيقية، يمكنك تشغيل المحاكيات لأي أو كل المنتجات المتوافقة. بالنسبة إلى أي منتجات لا تحاكيها، ستتفاعل تطبيقاتك ورمزك مع المورد المباشر (مثيل قاعدة البيانات أو حزمة التخزين أو الوظيفة أو غير ذلك). |
تجريبي |
لا يتضمّن المشروع التجريبي على Firebase أيّ إعدادات حقيقية على Firebase ولا يتضمّن أيّ موارد نشطة. يتم الوصول إلى هذه المشاريع عادةً من خلال دروس تطبيقية حول الترميز أو برامج تعليمية أخرى. تبدأ أرقام تعريف المشاريع التجريبية بالبادئة |
عند العمل مع مشاريع Firebase التجريبية، تتفاعل تطبيقاتك ورموزك البرمجية مع المحاكيات فقط. إذا حاول تطبيقك التفاعل مع مورد لا يعمل عليه المحاكي، سيتعذّر تنفيذ هذا الرمز البرمجي. |
ننصحك باستخدام المشاريع التجريبية كلما أمكن. تتضمّن المزايا ما يلي:
- تسهيل عملية الإعداد نظرًا لأنه يمكنك تشغيل أدوات المحاكاة بدون إنشاء مشروع Firebase
- أمان أقوى، لأنّه إذا استدعى الرمز البرمجي عن طريق الخطأ موارد (إنتاج) غير محاكية، لن يكون هناك احتمال بتغيير البيانات واستخدامها والفوترة
- إتاحة استخدام حزمة SDK بلا إنترنت، لأنّه ليس عليك الاتصال بالإنترنت لتنزيل إعدادات حزمة SDK
استخدِم تطبيقك للتحدّث إلى المحاكي
حِزم تطوير البرامج (SDK) لنظامَي التشغيل Android وiOS والويب
يمكنك إعداد الإعدادات داخل التطبيق أو فئات الاختبار للتفاعل مع محاكي Authentication على النحو التالي.
Kotlin+KTX
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)
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 نقطة نهاية signUp REST.
- يجب تسجيل دخول المستخدمين باستخدام عناوين البريد الإلكتروني وكلمات المرور لإجراء الاختبارات.
- إذا كان ذلك منطبقًا على اختباراتك، يمكنك جلب رموًا متاحًة خارج النطاق للتحقّق من البريد الإلكتروني من نقطة نهاية REST الخاصة بالمحاكي.
- يمكنك تفريغ سجلات المستخدمين باستخدام نقطة نهاية REST الخاصة بالمحاكي لمحو البيانات.
المصادقة عبر الهاتف/الرسائل القصيرة المحاكية
بالنسبة إلى مصادقة الهاتف، لا يتيح محاكي المصادقة ما يلي:
- عمليات reCAPTCHA وAPN بعد الضبط للتفاعل مع المحاكي، توقف حِزم تطوير البرامج (SDK) للعملاء methods هذه بطريقة مشابهة لتلك الموضّحة في اختبار الدمج (iOS وAndroid والويب).
- اختبِر أرقام الهواتف باستخدام الرموز التي تم ضبطها مسبقًا في وحدة تحكّم Firebase.
بخلاف ذلك، من حيث رمز العميل، تكون عملية مصادقة الهاتف/الرسائل القصيرة مماثلة لتلك الموضّحة للإصدار العلني (iOS Android والويب).
باستخدام Emulator Suite UI:
- في Emulator Suite UI، انقر على علامة التبويب المصادقة.
- انقر على الزر إضافة مستخدم.
- اتّبِع خطوات معالج إنشاء حساب المستخدم، مع ملء حقلَي مصادقة الهاتف.
ومع ذلك، بالنسبة إلى مسارات مصادقة الهاتف، لن يبدأ المحاكي تسليم
أي رسائل نصية، نظرًا لأن الاتصال بمشغِّل شبكة الجوّال خارج نطاق النطاق وغير
مناسب للاختبار المحلي. بدلاً من ذلك، يطبع المحاكي الرمز الذي كان من المفترض أن يتم إرساله عبر رسالة قصيرة SMS إلى الوحدة الطرفية نفسها التي تم تشغيل firebase emulators:start
عندها،
وأدخِل هذا الرمز في التطبيق لمحاكاة قيام المستخدمين بالتحقّق من رسائلهم النصية.
الاختبار غير التفاعلي
لاختبار مصادقة الهاتف غير التفاعلية، استخدِم واجهة برمجة تطبيقات محاكي Authentication REST لاسترداد رموز الرسائل القصيرة المتاحة. لاحظ أن التعليمة البرمجية تكون مختلفة في كل مرة تبدأ فيها التدفق.
يكون التسلسل المعتاد على النحو التالي.
- يُرجى الاتصال بمنصّة
signInWithPhoneNumber
لبدء عملية التحقّق. - يمكنك استرداد رمز إثبات الملكية باستخدام نقطة نهاية REST الخاصة بالمحاكي.
- يمكنك الاتصال بالرقم
confirmationResult.confirm(code)
كالمعتاد لتقديم رمز التحقّق.
رسائل SMS متعددة العوامل
يتيح المحاكي Authentication إنشاء نماذج أولية لاختبار تدفقات المصادقة المتعدّدة العوامل (MFA) للرسائل القصيرة المتوفّرة في قناة الإصدار العلني على أنظمة التشغيل iOS وAndroid والويب.
عند إضافة مستخدم وهمي إلى المحاكي، يمكنك تفعيل ميزة "التحقّق من خطوتَين" وضبط رقم هاتف واحد
أو أكثر سيتم إرسال رسائل SMS إليه لتأكيد العملية. يتم إخراج الرسائل إلى الوحدة الطرفية نفسها التي تم تشغيل firebase emulators:start
فيها،
وتكون متوفرة من واجهة REST.
مصادقة موفِّر الهوية المحاكي التابع لجهة خارجية
يتيح لك محاكي Authentication اختبار العديد من عمليات المصادقة التابعة لجهات خارجية في تطبيقات iOS أو Android أو تطبيقات الويب بدون إجراء أي تغييرات على رمز الإصدار العلني. للحصول على أمثلة على عمليات المصادقة، يمكنك الرجوع إلى المستندات المتعلّقة بمختلف مجموعات مزوّدي الخدمات والمنصّات التي يمكنك استخدامها في تطبيقك.
بشكل عام، يمكنك استخدام حزمة تطوير البرامج (SDK) لمنصّة Firebase للمصادقة من خلال إحدى الطريقتَين التاليتَين:
- يسمح تطبيقك لحزمة SDK بمعالجة العملية بالكامل من البداية إلى النهاية، بما في ذلك جميع التفاعلات مع موفّري خدمات إدارة الهوية التابعين لجهات خارجية لاسترداد بيانات الاعتماد.
- يسترجع تطبيقك بيانات الاعتماد يدويًا من موفِّر تابع لجهة خارجية باستخدام حزمة SDK التابعة لتلك الجهة، ويُرسِل بيانات الاعتماد هذه إلى حزمة SDK الخاصة بمنصّة Authentication.
يُرجى الرجوع مرة أخرى إلى رابط المستندات أعلاه والتأكّد من أنّك على دراية بالخطوات التي تريد استخدامها، سواء كانت حزمة تطوير البرامج (SDK) لمنصّة Firebase أو استرداد بيانات الاعتماد يدويًا. يتيح محاكي Authentication اختبار أيّ من الطريقتَين.
اختبار مسارات موفِّر الهوية (idP) المستندة إلى حزمة تطوير البرامج (SDK) لمنصّة Firebase
إذا كان تطبيقك يستخدم أيّ مسار شامل لحزمة تطوير البرامج (SDK) لمنصّة Firebase، مثل OAuthProvider
لتسجيل الدخول باستخدام حساب Microsoft أو GitHub أو Yahoo، لإجراء اختبار تفاعلي، يعرض المحاكي Authentication إصدارًا محليًا من صفحة تسجيل الدخول ذات الصلة لمساعدتك في اختبار المصادقة من تطبيقات الويب التي تطلب طريقة signinWithPopup
أو signInWithRedirect
. تظهر أيضًا صفحة تسجيل الدخول هذه المعروضة محليًا في
التطبيقات المتوافقة مع الأجهزة الجوّالة، والتي تعرِضها مكتبة webview في نظام التشغيل.
ينشئ المحاكي حسابات مستخدم وهمية تابعة لجهة خارجية وبيانات اعتماد حسب الحاجة أثناء استمرار التدفقات.
اختبار عمليات موفِّر الهوية (IdP) من خلال استرداد بيانات الاعتماد يدويًا
إذا كنت تستخدِم أساليب تسجيل الدخول "اليدوية" وتستدعي signInWithCredentials
طريقة المنصة، سيطلب تطبيقك تسجيل الدخول إلى جهة خارجية حقيقية كالمعتاد وي retrieving retrieve real third-party credentials.
تجدر الإشارة إلى أنّ المحاكي يتيح فقط مصادقة signInWithCredential
لبيانات الاعتماد التي يتم استردادها من تسجيل الدخول بحساب Google وApple وموفِّري الخدمات الآخرين الذين يستخدمون رموزًا مميّزة للمعرّفات وتم تنفيذها على شكل رموز JSON للويب (JWT). لا يُسمح باستخدام علامات الأمان للوصول
(مثل تلك التي يوفّرها Facebook أو Twitter والتي لا تكون من نوع JWT). ويناقش القسم التالي بديلاً في هذه الحالات.
الاختبار غير التفاعلي
من بين طرق الاختبار غير التفاعلي، برمجة نقرات المستخدمين على صفحة تسجيل الدخول التي يعرضها المحاكي. بالنسبة إلى تطبيقات الويب، يمكنك استخدام واجهة تحكم مثل WebDriver. بالنسبة إلى الأجهزة الجوّالة، استخدِم أدوات اختبار واجهة المستخدِم من منصّتك، مثل Espresso أو Xcode.
بدلاً من ذلك، يمكنك تعديل الرمز البرمجي لاستخدام signInWithCredential
(على سبيل المثال، في فرع رمز) واستخدام عملية مصادقة باستخدام الرمز المميّز مع رموزم هُوية مزوّرة للحسابات بدلاً من بيانات الاعتماد الحقيقية.
- إعادة توصيل جزء من الرمز الذي يسترد رموز التعريف من موفِّر الهوية (idToken) أو التعليق عليه، وبذلك لن تكون هناك حاجة إلى إدخال أسماء مستخدمين وكلمات مرور حقيقية أثناء الاختبارات، كما يخفّف من الحاجة إلى إدخال أسماء المستخدمين وكلمات المرور الحقيقية أثناء الاختبارات، كما يخفف من حدة الاختبارات من حصص واجهات برمجة التطبيقات وحدود المعدل لدى موفِّر الهوية (idP).
- ثانيًا، يمكنك استخدام سلسلة 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 والإصدار العلني
يحاكي محاكي Firebase Authentication العديد من ميزات منتج الإنتاج. ومع ذلك، بما أنّ أي نوع من أنظمة المصادقة يعتمد بشكل كبير على الأمان على مستويات متعدّدة (الجهاز، والموفّرون التابعون لجهات خارجية، وFirebase، وغيرها)، من الصعب على المحاكي إعادة إنشاء جميع عمليات الربط بشكل صحيح.
Cloud IAM
لا تحاول مجموعة أدوات المحاكاة في Firebase تكرار أي سلوك مرتبط بإدارة الهوية وإمكانية الوصول (IAM) أو الالتزام به. تلتزم أدوات المحاكاة بقواعد أمان Firebase المقدمة، ولكن في الحالات التي يتم فيها استخدام إدارة الهوية وإمكانية الوصول عادةً، مثل ضبط حساب الخدمة لاستدعاء دوال Cloud وبالتالي الأذونات، يكون المحاكي غير قابل للضبط وسيستخدم الحساب المتاح عالميًا على جهاز المطوّر لديك، تمامًا مثل تشغيل نص برمجي محلي مباشرةً.
تسجيل الدخول عبر رابط البريد الإلكتروني على الجهاز الجوّال
بما أنّ تسجيل الدخول باستخدام رابط البريد الإلكتروني يعتمد على "روابط 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" في مقالة تشغيل الدوال محليًا.