חבר את האפליקציה שלך ל- Firebase
אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
הוסף אימות Firebase לאפליקציה שלך
באמצעות Firebase Android BoM , הצהיר על התלות בספריית Android של אימות Firebase במודול שלך (ברמת האפליקציה) בקובץ Gradle (בדרך כללapp/build.gradle
). ג'אווה
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:27.0.0') // Declare 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 , האפליקציה שלך תשתמש תמיד בגרסאות תואמות של ספריות Android ל- Firebase.
(חלופי) הצהיר על תלות בספריית Firebase מבלי להשתמש ב- BoM
אם תבחר שלא להשתמש ב- Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.
שים לב שאם אתה משתמש בספריות Firebase מרובות באפליקציה שלך, אנו ממליצים בחום להשתמש ב- BoM לניהול גרסאות ספרייה, מה שמבטיח שכל הגרסאות תואמות.
dependencies { // Declare 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:20.0.4' }
Kotlin + KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:27.0.0') // Declare 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-ktx' }
על ידי שימוש ב- Firebase Android BoM , האפליקציה שלך תשתמש תמיד בגרסאות תואמות של ספריות Android ל- Firebase.
(חלופי) הצהיר על תלות בספריית Firebase מבלי להשתמש ב- BoM
אם תבחר שלא להשתמש ב- Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.
שים לב שאם אתה משתמש בספריות Firebase מרובות באפליקציה שלך, אנו ממליצים בחום להשתמש ב- BoM לניהול גרסאות ספרייה, מה שמבטיח שכל הגרסאות תואמות.
dependencies { // Declare 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-ktx:20.0.4' }
כדי להשתמש בספק אימות, עליך להפעיל אותו במסוף Firebase . עבור לדף שיטת הכניסה בקטע אימות Firebase כדי לאפשר כניסה באמצעות דוא"ל / סיסמה וכל ספקי זהות אחרים שאתה רוצה לאפליקציה שלך.
(אופציונלי) אב טיפוס ובדיקה באמצעות Firebase Local Emulator Suite
לפני שנדבר על האופן שבו האפליקציה שלך מאמתת משתמשים, בואו להציג קבוצה של כלים שבהם תוכלו להשתמש באב טיפוס ובדיקת פונקציונליות אימות: Firebase Local Emulator Suite. אם אתה מחליט בין טכניקות וספקי אימות, לנסות מודלים שונים של נתונים עם נתונים ציבוריים ופרטיים באמצעות אימות וכללי אבטחה של Firebase, או אבות טיפוס של עיצובי ממשק משתמש של כניסה, היכולת לעבוד באופן מקומי ללא פריסת שירותים חיים יכולה להיות רעיון נהדר. .
אמולטור אימות הוא חלק מחבילת האמולטור המקומית, המאפשרת לאפליקציה שלך לקיים אינטראקציה עם תוכן מסדי נתונים של חיקוי ותצורה מוגדרת, כמו גם את משאבי הפרויקט המדומים שלך (פונקציות, מסדי נתונים אחרים וכללי אבטחה). שים לב שחבילת האמולטור המקומית עדיין לא תומכת באחסון ענן מדומה.
השימוש באמולטור האימות כולל רק כמה צעדים:
- הוספת שורת קוד לתצורת הבדיקה של האפליקציה שלך כדי להתחבר לאמולטור.
- משורש ספריית הפרויקטים המקומית שלך, הפעלת
firebase emulators:start
. - שימוש בממשק המשתמש של אמולטור הסוויטה המקומי לצורך יצירת טיפוס אינטראקטיבי, או REST API של אמולטור האימות לצורך בדיקה לא אינטראקטיבית.
מדריך מפורט זמין בחיבור האפליקציה שלך לאמולטור האימות . למידע נוסף, עיין במבוא של Local Emulator Suite .
עכשיו נמשיך כיצד לאמת משתמשים.
בדוק את מצב האימות הנוכחי
הכריז על מופע של
FirebaseAuth
.ג'אווה
private FirebaseAuth mAuth;
Kotlin + KTX
private lateinit var auth: FirebaseAuth
בשיטת
onCreate()
, אתחל את המופע שלFirebaseAuth
.ג'אווה
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
Kotlin + KTX
// Initialize Firebase Auth auth = Firebase.auth
בעת אתחול הפעילות שלך, בדוק אם המשתמש מחובר כעת.
ג'אווה
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
Kotlin + KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if(currentUser != null){ reload(); } }
הרשמו משתמשים חדשים
צור שיטת createAccount
חדשה שלוקחת כתובת דוא"ל וסיסמה, מאמתת אותם ואז יוצרת משתמש חדש בשיטת createUserWithEmailAndPassword
.
ג'אווה
mAuth.createUserWithEmailAndPassword(email, password) .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, "createUserWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Kotlin + KTX
auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.exception) Toast.makeText(baseContext, "Authentication failed.", Toast.LENGTH_SHORT).show() updateUI(null) } }
הוסף טופס לרישום משתמשים חדשים באמצעות הדוא"ל והסיסמה שלהם והתקשר לשיטה חדשה זו בעת הגשתו. תוכל לראות דוגמה במדגם שלנו להפעלה מהירה .
היכנס למשתמשים קיימים
צור שיטת signIn
חדשה אשר תופסת כתובת דוא"ל וסיסמה, מאמתת אותם ולאחר מכן נכנסת למשתמש בשיטת signInWithEmailAndPassword
.
ג'אווה
mAuth.signInWithEmailAndPassword(email, password) .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, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
Kotlin + KTX
auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.exception) Toast.makeText(baseContext, "Authentication failed.", Toast.LENGTH_SHORT).show() updateUI(null) } }
הוסף טופס כדי להיכנס למשתמשים באמצעות הדוא"ל והסיסמה שלהם והתקשר לשיטה חדשה זו בעת הגשתו. תוכל לראות דוגמה במדגם שלנו להפעלה מהירה .
גש למידע המשתמש
אם משתמש נכנס בהצלחה אתה יכול לקבל את נתוני החשבון שלו בכל נקודה בשיטת getCurrentUser
.
ג'אווה
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user != null) { // Name, email address, and profile photo Url String name = user.getDisplayName(); String email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); // Check if user's email is verified boolean emailVerified = user.isEmailVerified(); // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getIdToken() instead. String uid = user.getUid(); }
Kotlin + KTX
val user = Firebase.auth.currentUser user?.let { // Name, email address, and profile photo Url val name = user.displayName val email = user.email val photoUrl = user.photoUrl // Check if user's email is verified val emailVerified = user.isEmailVerified // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getToken() instead. val uid = user.uid }
הצעדים הבאים
עיין במדריכים בנושא הוספת שירותי זהות ואימות אחרים: