התחל בעבודה עם אימות Firebase באנדרואיד

חבר את האפליקציה שלך ל- Firebase

אם לא עשית זאת עדיין, להוסיף Firebase לפרויקט Android שלך .

הוסף את אימות Firebase לאפליקציה שלך

באמצעות BOM אנדרואיד Firebase , להכריז על התלות של הספרייה אנדרואיד אימות Firebase במודול שלך (ברמת האפליקציה) קובץ Gradle (בדרך כלל app/build.gradle ).

ג'אווה

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.4.1')

    // 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 אנדרואיד BOM , האפליקציה שלך תמיד ישתמשו גירסאות תואמות של ספריות אנדרואיד 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:21.0.1'
}

קוטלין+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.4.1')

    // 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 אנדרואיד BOM , האפליקציה שלך תמיד ישתמשו גירסאות תואמות של ספריות אנדרואיד 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:21.0.1'
}

כדי להשתמש ספק אימות, יש לאפשר אותה קונסולת Firebase . עבור לדף שיטת הכניסה בקטע אימות Firebase כדי לאפשר כניסה לדוא"ל/סיסמה וכל ספקי זהות אחרים שאתה רוצה לאפליקציה שלך.

(אופציונלי) אב טיפוס ובדיקה עם חבילת אמולטור מקומית של Firebase

לפני שנדבר על האופן שבו האפליקציה שלך מאמתת משתמשים, הבה נציג קבוצה של כלים שבהם תוכל להשתמש כדי ליצור אב טיפוס ולבדוק את פונקציונליות האימות: חבילת Emulator Local של Firebase. אם אתה מחליט בין שיטות וספקי אימות, לנסות מודלים שונים של נתונים עם נתונים ציבוריים ופרטיים באמצעות כללי אבטחה ו- Firebase או עיצוב אבות-עיצוב של ממשקי ממשק משתמש, יכול לעבוד באופן מקומי מבלי לפרוס שירותים חיים יכול להיות רעיון מצוין .

אמולטור אימות הוא חלק מחבילת האימולטור המקומי, המאפשרת לאפליקציה שלך לקיים אינטראקציה עם תוכן מסדי נתונים וחיקוי, כמו גם משאבי הפרויקט החיקויים שלך (פונקציות, מסדי נתונים אחרים וכללי אבטחה).

השימוש באמולטור האימות כולל רק כמה שלבים:

  1. הוספת שורה של קוד לתצורת הבדיקה של האפליקציה שלך כדי להתחבר לאמולטור.
  2. מן השורש של ספריית הפרויקט המקומית, פועל firebase emulators:start .
  3. שימוש בממשק המשתמש של Local Emulator Suite לאב טיפוס אינטראקטיבי, או בממשק ה- API REST של אמולטור האימות לבדיקות לא אינטראקטיביות.

מדריך מפורט זמין בכתובת קישור האפליקציה שלך האמולטור אימות . לקבלת מידע נוסף, ראה מבוא Suite Emulator המקומי .

עכשיו בואו נמשיך כיצד לאמת משתמשים.

בדוק את מצב האישור הנוכחי

  1. להצהיר על מופע של FirebaseAuth .

    ג'אווה

    private FirebaseAuth mAuth;

    Kotlin+KTX

    private lateinit var auth: FirebaseAuth
  2. בשנות ה onCreate() שיטה, לאתחל את FirebaseAuth למשל.

    ג'אווה

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    קוטלין+KTX

    // Initialize Firebase Auth
    auth = Firebase.auth
  3. בעת אתחול הפעילות שלך, בדוק אם המשתמש מחובר כעת.

    ג'אווה

    @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();
        }
    }

    קוטלין+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);
                }
            }
        });

קוטלין+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)
            }
        }

הוסף טופס לרישום משתמשים חדשים עם הדוא"ל והסיסמה שלהם והתקשר לשיטה החדשה הזו כאשר היא נשלחת. אתה יכול לראות דוגמה שלנו מדגם QuickStart .

היכנס למשתמשים קיימים

צור חדש 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);
                }
            }
        });

קוטלין+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)
            }
        }

הוסף טופס כדי להיכנס למשתמשים עם הדוא"ל והסיסמה שלהם והתקשר לשיטה החדשה הזו כאשר היא נשלחת. אתה יכול לראות דוגמה שלנו מדגם QuickStart .

גישה למידע משתמשים

אם משתמש חתמה בהצלחה אתה יכול לקבל את נתוני החשבון שלהם בכל נקודה עם 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();
}

קוטלין+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
}

הצעדים הבאים

עיין במדריכים להוספת שירותי זהות ואימות אחרים: