אימות מספר טלפון ב-Firebase ב-Android

בדף הזה מוסבר איך להתחיל להשתמש ב-Firebase Phone Number Verification באפליקציית Android. בסקירה הכללית מופיע תיאור כללי של התכונה הזו.

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

אחרי שתהיו מרוצים מחוויית המשתמש באפליקציה, תוכלו לבצע עוד כמה שלבים כדי להכין את האפליקציה להפקה.Firebase PNV

לפני שמתחילים

1. להוסיף את ספריית Firebase PNV לאפליקציה

בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מוסיפים את התלות בספריית Firebase Phone Number Verification ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בניהול הגרסאות של הספריות.

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

    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv")
}

באמצעות Firebase Android BoM, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Firebase ל-Android.

(חלופה)  מוסיפים תלות של הפרויקט בספריות Firebase בלי להשתמש ב-BoM

אם בוחרים לא להשתמש ב-Firebase BoM, צריך לציין את הגרסה של כל ספריית Firebase בשורת התלות שלה.

הערה: אם אתם משתמשים בכמה ספריות Firebase באפליקציה, מומלץ מאוד להשתמש ב-BoM כדי לנהל את גרסאות הספריות, וכך לוודא שכל הגרסאות תואמות.

dependencies {
    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv:16.0.0")
}

2. הפעלת הספרייה Firebase PNV במצב בדיקה

  1. בכרטיסייה Testing (בדיקה) בקטע Firebase Phone Verification (אימות טלפון) במסוף, לוחצים על הלחצן Generate token (יצירת אסימון).

  2. באפליקציה, מאתחלים את לקוח Firebase PNV כדי להשתמש בסשן בדיקה:

    Kotlin

    מייבאים את הספרייה:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    יוצרים מופע חדש של המחלקה FirebasePhoneNumberVerification ומשתמשים במופע הזה לכל הקריאות של Firebase PNV. השיטה getInstance() לא מחזירה אובייקט יחיד, ולכן צריך לשמור אותו אחרי שיוצרים אותו.

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    מפעילים סשן בדיקה באמצעות הטוקן שיצרתם בשלב הקודם:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    חובה להפעיל את ה-method הזו רק פעם אחת במופע של FirebasePhoneNumberVerification. הפעלות חוזרות יגרמו לשגיאה.

תוקף הטוקנים לבדיקה הוא 7 ימים. אחרי התקופה הזו, תצטרכו ליצור טוקן חדש כדי להפעיל סשנים של בדיקה. אפשר להשתמש בטוקנים לבדיקה במכשירים פיזיים ובאמולטורים, ולכן הם אידיאליים ליצירת אב טיפוס של חוויית המשתמש באפליקציה או לבדיקה ב-CI/CD.

3. המלצה: בדיקה אם יש תמיכה ב-Firebase PNV

כדי לעזור לכם להחליט מתי להציג את ממשק המשתמש להזנת מספר או את ממשק המשתמש עם ההסבר, מומלץ לבדוק בהפעלת האפליקציה אם המכשיר וכרטיס ה-SIM שלו תומכים ב-Firebase PNV. זו בדיקה מקדימה שלא דורשת הסכמה מהמשתמשים. אפשר להשתמש בתוצאה של הבדיקה הזו כדי להחליט אם להתחיל את התהליך של Firebase PNV או להשתמש בשיטה חלופית לאימות מספר הטלפון, כמו SMS.

כדי לבדוק את התאימות של המכשיר, קוראים ל-method‏ getVerificationSupportInfo(). בזמן שסשן בדיקה פעיל, השיטה הזו תחזיר רשימה של כל טוקן בדיקה שפעיל בפרויקט. בהמשך, אחרי שתעבירו את האפליקציה לסביבת ייצור, השיטה הזו תחזיר תוצאה לכל כרטיס SIM במכשיר.

Kotlin

// Check all SIMs for support.
fpnv.getVerificationSupportInfo()
  .addOnSuccessListener { results ->
    if (results.any { it.isSupported() }) {
      // At least one SIM is supported; okay to call getVerifiedPhoneNumber
      // (see the next step).
    } else {
      // No SIMs are supported, so fall back to SMS verification.
    }
  }
  .addOnFailureListener { e ->
    // Handle error.
  }

4. התחלת תהליך האימות

כדי להפעיל את התהליך של Firebase PNV, קוראים ל-method‏ getVerifiedPhoneNumber():

Kotlin

fpnv.getVerifiedPhoneNumber()
  .addOnSuccessListener { result ->
    // In test mode, this phone number will have a valid country code,
    // followed by all zeros.
    val phoneNumber = result.getPhoneNumber()
    val token = result.getToken()

    // Verification successful. Send token to your backend. (See Next Steps.)
  }
  .addOnFailureListener { e ->
    // Handle failures, such as the user declining consent or a network error.
  }

בשיטה getVerifiedPhoneNumber() מתבצע תהליך האימות המלא של מספר הטלפון, כולל:

  • שימוש ב'מנהל פרטי הכניסה' ב-Android כדי לקבל את הסכמת המשתמש לשיתוף מספר הטלפון שלו.
  • שליחת הבקשה אל ה-backend של Firebase PNV.
  • החזרת טוקן שמכיל את מספר הטלפון המאומת של המכשיר (באפליקציה בייצור, זה קורה כשמתבצע חיוב).

השלבים הבאים

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

    מומלץ להשתמש ב-API הזה לרוב המפתחים. עם זאת, אם יש לכם דרישות ספציפיות שהספרייה לא עונה עליהן, תוכלו לעיין בדף התאמה אישית של תהליך Firebase Phone Number Verification כדי לקבל מידע על הטמעה של תהליך מותאם אישית.

  • אם אתם משתמשים במספר הטלפון המאומת מחוץ ללקוח האפליקציה, כדאי להעביר את האסימון במקום את מספר הטלפון עצמו, כדי שתוכלו לאמת את השלמות שלו כשאתם משתמשים בו. איך מאמתים אסימוני Firebase PNV

  • אחרי שמטמיעים את Firebase PNVהזרימה והשילוב של העורף האחורי של האפליקציה ובודקים אותם, אפשר להעביר את האפליקציה לייצור כדי להתחיל לקבל מספרי טלפון מאומתים אמיתיים. איך משדרגים למצב הפקה