يمكنك استخدام "مصادقة Firebase" لإنشاء حسابات مؤقتة مجهولة الهوية واستخدامها للمصادقة باستخدام Firebase. يمكن استخدام هذه الحسابات المؤقتة مجهولة الهوية للسماح للمستخدمين الذين لم يسبق لهم الاشتراك في تطبيقك بالعمل على البيانات المحمية بموجب قواعد الأمان. إذا قرّر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك ربط بيانات تسجيل الدخول بالحساب مجهول الهوية لـ يتمكّن من مواصلة العمل على بياناته المحمية في الجلسات المستقبلية.
قبل البدء
إذا لم يسبق لك ذلك، اتّبِع الخطوات الواردة في دليل البدء.
فعِّل ميزة تسجيل الدخول مجهول الهوية:
في وحدة تحكّم Firebase، انتقِل إلى الأمان > المصادقة.
في علامة التبويب طريقة تسجيل الدخول ، فعِّل موفِّر تسجيل الدخول مجهول الهوية.
انقر على حفظ.
المصادقة باستخدام Firebase مجهولة الهوية
عندما يستخدم مستخدم سجّل خروجه ميزة في التطبيق تتطلّب المصادقة باستخدام Firebase، سجِّل دخول المستخدم مجهول الهوية من خلال استدعاء signInAnonymously():
try {
final userCredential =
await FirebaseAuth.instance.signInAnonymously();
print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
switch (e.code) {
case "operation-not-allowed":
print("Anonymous auth hasn't been enabled for this project.");
break;
default:
print("Unknown error.");
}
}
تحويل حساب مجهول الهوية إلى حساب دائم
عندما يشترك مستخدم مجهول الهوية في تطبيقك، قد تريد السماح له بمواصلة العمل باستخدام حسابه الجديد. على سبيل المثال، قد تريد إتاحة العناصر التي أضافها المستخدم إلى سلّة التسوّق قبل الاشتراك في سلّة التسوّق الخاصة بحسابه الجديد. لإجراء ذلك، يُرجى إكمال الخطوات التالية:
عندما يشترك المستخدم، أكمل عملية تسجيل الدخول لموفِّر المصادقة الخاص بالمستخدم حتى استدعاء أحد طرق
signInWith-، ولكن لا تستدعِ أيًا منها. على سبيل المثال، احصل على رمز تعريف Google للمستخدم أو رمز الوصول إلى Facebook أو عنوان البريد الإلكتروني وكلمة المرور.احصل على عنصر
Credentialلموفِّر المصادقة الجديد:// Google Sign-in final credential = GoogleAuthProvider.credential(idToken: idToken); // Email and password sign-in final credential = EmailAuthProvider.credential(email: emailAddress, password: password); // Etc.مرِّر عنصر
Credentialإلى طريقةlinkWithCredential()الخاصة بالمستخدم الذي يسجّل الدخول:try { final userCredential = await FirebaseAuth.instance.currentUser ?.linkWithCredential(credential); } on FirebaseAuthException catch (e) { switch (e.code) { case "provider-already-linked": print("The provider has already been linked to the user."); break; case "invalid-credential": print("The provider's credential is not valid."); break; case "credential-already-in-use": print("The account corresponding to the credential already exists, " "or is already linked to a Firebase User."); break; // See the API reference for the full list of error codes. default: print("Unknown error."); } ```
إذا نجح استدعاء linkWithCredential()، يمكن لحساب المستخدم الجديد الوصول إلى بيانات Firebase الخاصة بالحساب مجهول الهوية.
الخطوات التالية
بعد أن ينشئ المستخدم حسابًا جديدًا، يتم تخزين هذا الحساب كجزء من مشروعك على Firebase، ويمكن استخدامه لتحديد هوية المستخدم في كل تطبيق في مشروعك، بغض النظر عن طريقة تسجيل الدخول التي استخدمها.
في تطبيقاتك، يمكنك الحصول على معلومات الملف الشخصي الأساسية للمستخدم من عنصر User. راجِع مقالة إدارة المستخدمين.
في قواعد الأمان الخاصة بـ Firebase Realtime Database وCloud Storage، يمكنك الحصول على رقم تعريف المستخدم الفريد للمستخدم الذي سجّل الدخول من متغيّر auth، واستخدامه للتحكّم في البيانات التي يمكن للمستخدم الوصول إليها.
يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام عدّة موفّري مصادقة من خلال ربط بيانات اعتماد موفِّر المصادقة) بحساب مستخدم حالي.
لتسجيل خروج مستخدم، استدعِ signOut():
await FirebaseAuth.instance.signOut();