אתם יכולים להשתמש באימות ב-Firebase כדי ליצור חשבונות אנונימיים זמניים ולאמת אותם ב-Firebase. אפשר להשתמש בחשבונות האנונימיים הזמניים האלה כדי לאפשר למשתמשים שעדיין לא נרשמו לאפליקציה לעבוד עם נתונים שמוגנים על ידי כללי אבטחה. אם משתמש לא רשום מחליט להירשם לאפליקציה שלכם, אתם יכולים לקשר את פרטי הכניסה שלו לחשבון האנונימי כדי שהוא יוכל להמשיך לעבוד עם הנתונים המוגנים שלו בסשנים עתידיים.
לפני שמתחילים
אם עדיין לא עשיתם את זה, אתם צריכים לפעול לפי השלבים במדריך תחילת העבודה.
הפעלת כניסה אנונימית:
במסוף Firebase, עוברים אל Security (אבטחה) > Authentication (אימות).
בכרטיסייה שיטת הכניסה, מפעילים את ספק הכניסה אנונימי.
לוחצים על שמירה.
אימות אנונימי באמצעות 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, טוקן גישה של פייסבוק או כתובת אימייל וסיסמה של המשתמש.מקבלים אובייקט
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 ו-Cloud Storage, אפשר לקבל את מזהה המשתמש הייחודי של המשתמש המחובר מהמשתנה auth ולהשתמש בו כדי לשלוט בנתונים שהמשתמש יכול לגשת אליהם.
אתם יכולים לאפשר למשתמשים להיכנס לאפליקציה שלכם באמצעות כמה ספקי אימות על ידי קישור פרטי כניסה של ספק אימות לחשבון משתמש קיים.
כדי להוציא משתמש מהחשבון, קוראים לפונקציה signOut():
await FirebaseAuth.instance.signOut();