אתה יכול להשתמש באימות Firebase כדי ליצור ולהשתמש בחשבונות אנונימיים זמניים כדי לבצע אימות עם Firebase. ניתן להשתמש בחשבונות אנונימיים זמניים אלה כדי לאפשר למשתמשים שעדיין לא נרשמו לאפליקציה שלך לעבוד עם נתונים המוגנים על ידי כללי אבטחה. אם משתמש אנונימי מחליט להירשם לאפליקציה שלך, תוכל לקשר את אישורי הכניסה שלו לחשבון האנונימי כדי שיוכל להמשיך לעבוד עם הנתונים המוגנים שלו במפגשים עתידיים.
לפני שאתה מתחיל
- אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
- בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), הוסף את התלות עבור אימות Firebase ספרייה עבור אנדרואיד. אנו ממליצים להשתמש ב- Firebase Android BoM כדי לשלוט בגירסאות של הספרייה.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth") }
באמצעות Firebase Android BoM , האפליקציה שלך תמיד תשתמש בגרסאות תואמות של ספריות Firebase Android.
מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).(אלטרנטיבי) הוסף תלות בספריית Firebase מבלי להשתמש ב-BoM
אם תבחר שלא להשתמש ב-Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.
שים לב שאם אתה משתמש במספר ספריות Firebase באפליקציה שלך, אנו ממליצים בחום להשתמש ב-BoM לניהול גרסאות ספרייה, מה שמבטיח שכל הגרסאות תואמות.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:22.3.1") }
- אם עדיין לא חיברת את האפליקציה שלך לפרויקט Firebase שלך, עשה זאת ממסוף Firebase .
- אפשר אימות אנונימי:
- במסוף Firebase , פתח את הקטע Auth .
- בדף שיטות כניסה , הפעל את שיטת הכניסה אנונימית .
- אופציונלי : אם שדרגת את הפרויקט שלך לאימות Firebase עם Identity Platform , תוכל להפעיל ניקוי אוטומטי. כאשר תפעיל הגדרה זו, חשבונות אנונימיים מעל 30 יום יימחקו אוטומטית. בפרויקטים עם ניקוי אוטומטי מופעל, אימות אנונימי לא ייחשב עוד עבור מגבלות השימוש או מכסות החיוב. ראה ניקוי אוטומטי .
בצע אימות אנונימי עם Firebase
כאשר משתמש מנותק משתמש בתכונת אפליקציה הדורשת אימות עם Firebase, היכנס למשתמש באופן אנונימי על ידי השלמת השלבים הבאים:
- בשיטה
onCreate
של הפעילות שלך, קבל את המופע המשותף של אובייקטFirebaseAuth
:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- בעת אתחול הפעילות שלך, בדוק אם המשתמש מחובר כעת:
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser updateUI(currentUser) }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); updateUI(currentUser); }
- לבסוף, התקשר
signInAnonymously
כדי להיכנס כמשתמש אנונימי:אם הכניסה מצליחה, תוכל להשתמש בשיטתKotlin+KTX
auth.signInAnonymously() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInAnonymously() .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInAnonymously:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInAnonymously:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
getCurrentUser
כדי לקבל את נתוני החשבון של המשתמש.
המרת חשבון אנונימי לחשבון קבוע
כאשר משתמש אנונימי נרשם לאפליקציה שלך, אולי תרצה לאפשר לו להמשיך בעבודתו עם החשבון החדש שלו - לדוגמה, ייתכן שתרצה להפוך את הפריטים שהמשתמש הוסיף לעגלת הקניות שלו לפני שנרשם לזמינים בחדש שלו. עגלת הקניות של החשבון. לשם כך, בצע את השלבים הבאים:
- כאשר המשתמש נרשם, השלם את זרימת הכניסה עבור ספק האימות של המשתמש עד, אך לא כולל, קריאה לאחת משיטות
FirebaseAuth.signInWith
. לדוגמה, קבל את אסימון ה-Google ID של המשתמש, אסימון הגישה לפייסבוק או כתובת דוא"ל וסיסמה. קבל
AuthCredential
עבור ספק האימות החדש:כניסה לגוגל
Kotlin+KTX
val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
Java
AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
כניסה לפייסבוק
Kotlin+KTX
val credential = FacebookAuthProvider.getCredential(token.token)
Java
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
כניסה לסיסמת דוא"ל
Kotlin+KTX
val credential = EmailAuthProvider.getCredential(email, password)
Java
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
העבר את האובייקט
AuthCredential
לשיטתlinkWithCredential
של משתמש הכניסה:Kotlin+KTX
auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { Log.d(TAG, "linkWithCredential:success") val user = task.result?.user updateUI(user) } else { Log.w(TAG, "linkWithCredential:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "linkWithCredential:success"); FirebaseUser user = task.getResult().getUser(); updateUI(user); } else { Log.w(TAG, "linkWithCredential:failure", task.getException()); Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
אם הקריאה ל- linkWithCredential
תצליח, החשבון החדש של המשתמש יכול לגשת לנתוני Firebase של החשבון האנונימי.
ניקוי אוטומטי
אם שדרגת את הפרויקט שלך לאימות Firebase עם Identity Platform , תוכל להפעיל ניקוי אוטומטי במסוף Firebase. כשאתה מפעיל את התכונה הזו אתה מאפשר ל-Firebase למחוק אוטומטית חשבונות אנונימיים מעל 30 יום. בפרויקטים עם ניקוי אוטומטי מופעל, אימות אנונימי לא ייחשב במסגרת מגבלות השימוש או מכסות החיוב.
- כל חשבונות אנונימיים שנוצרו לאחר הפעלת ניקוי אוטומטי עשויים להימחק אוטומטית בכל עת לאחר 30 יום לאחר היצירה.
- חשבונות אנונימיים קיימים יהיו זכאים למחיקה אוטומטית 30 יום לאחר הפעלת הניקוי האוטומטי.
- אם תכבה את הניקוי האוטומטי, כל חשבונות אנונימיים שתוכננו להימחק יישארו מתוכננים להימחק.
- אם "משדרגים" חשבון אנונימי על ידי קישורו לשיטת כניסה כלשהי, החשבון לא יימחק אוטומטית.
אם אתה רוצה לראות כמה משתמשים יושפעו לפני שתפעיל תכונה זו, ושדרגת את הפרויקט שלך לאימות Firebase עם Identity Platform , תוכל לסנן לפי is_anon
ב- Cloud Logging .
הצעדים הבאים
כעת, כשמשתמשים יכולים לבצע אימות באמצעות Firebase, אתה יכול לשלוט בגישה שלהם לנתונים במסד הנתונים שלך ב-Firebase באמצעות כללי Firebase .