يمكنك استخدام مصادقة 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 وقواعد أمان التخزين السحابي ، يمكنك الحصول على معرف المستخدم الفريد للمستخدم الذي قام بتسجيل الدخول من متغير auth
، واستخدامه للتحكم في البيانات التي يمكن للمستخدم الوصول إليها.
يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام موفري مصادقة متعددين عن طريق ربط بيانات اعتماد موفر المصادقة ) بحساب مستخدم حالي.
لتسجيل خروج مستخدم ، اتصل signOut()
:
await FirebaseAuth.instance.signOut();