เริ่มต้นใช้งานการยืนยันหมายเลขโทรศัพท์ด้วย Firebase ใน Android

หน้านี้อธิบายวิธีเริ่มต้นใช้งานFirebase Phone Number Verificationในแอป Android โปรดดู ภาพรวมเพื่อดูคำอธิบายทั่วไปเกี่ยวกับ ฟีเจอร์นี้

ทำตามขั้นตอนในหน้านี้เพื่อเริ่มต้นใช้งานการติดตั้งใช้งาน โฟลว์ของผู้ใช้สำหรับFirebase PNVได้อย่างรวดเร็ว สำหรับการทดสอบ คุณจะต้องสร้างโทเค็นสำหรับการทดสอบเท่านั้นซึ่งจะแปลงเป็นหมายเลขโทรศัพท์ปลอม การใช้โทเค็นทดสอบนี้ คุณจะเริ่มเพิ่ม Firebase PNV ลงในแอปได้โดยไม่ต้องมีบัญชีสำหรับการเรียกเก็บเงินหรืออุปกรณ์ที่มีซิมจริง

เมื่อพอใจกับประสบการณ์ของผู้ใช้ในแอปแล้ว คุณสามารถทำตาม ขั้นตอนเพิ่มเติมเพื่อนำแอปไปใช้งานจริงได้Firebase PNV

ก่อนเริ่มต้น

1. เพิ่มไลบรารี Firebase PNV ลงในแอป

ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี 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 เวอร์ชันที่เข้ากันได้อยู่เสมอ

(ทางเลือก)  เพิ่มทรัพยากร Dependency ของไลบรารี Firebase โดยไม่ ใช้ BoM

หากเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันของไลบรารี Firebase แต่ละรายการ ในบรรทัดทรัพยากร Dependency

โปรดทราบว่าหากคุณใช้ไลบรารี 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. ในแท็บการทดสอบ ของ Firebase ส่วนการยืนยันหมายเลขโทรศัพท์ในคอนโซล ให้คลิกปุ่มสร้างโทเค็น

  2. ในแอป ให้เริ่มต้นใช้งานไคลเอ็นต์ Firebase PNV เพื่อใช้เซสชันทดสอบโดยทำดังนี้

    Kotlin

    นำเข้าไลบรารี

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    สร้างอินสแตนซ์ใหม่ของคลาส FirebasePhoneNumberVerification และ ใช้อินสแตนซ์นี้สำหรับการเรียก Firebase PNV ทั้งหมด เมธอด getInstance() จะไม่แสดงออบเจ็กต์ Singleton ดังนั้นคุณต้องเก็บรักษาออบเจ็กต์ไว้หลังจากสร้าง

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    เปิดใช้เซสชันทดสอบโดยใช้โทเค็นที่สร้างขึ้นในขั้นตอนก่อนหน้าโดยทำดังนี้

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    คุณต้องเรียกเมธอดนี้เพียงครั้งเดียวในอินสแตนซ์ FirebasePhoneNumberVerification การเรียกครั้งต่อๆ ไปจะทำให้เกิดข้อผิดพลาด

โทเค็นทดสอบมี TTL 7 วัน หลังจากช่วงเวลานี้ คุณจะต้องสร้างโทเค็นใหม่เพื่อเปิดใช้เซสชันทดสอบ โทเค็นทดสอบใช้งานได้ในอุปกรณ์จริงและโปรแกรมจำลอง ซึ่งเหมาะสำหรับการสร้างต้นแบบ UX ในแอปหรือการทดสอบใน CI/CD

3. แนะนำ: ตรวจสอบการรองรับ Firebase PNV

เพื่อช่วยคุณในการพิจารณาว่าจะแสดง UI สำหรับป้อนหมายเลขหรือ UI อธิบายเมื่อใด เราขอแนะนำให้ตรวจสอบว่าอุปกรณ์และซิมการ์ดรองรับ Firebase PNVเมื่อเปิดแอป นี่เป็นการตรวจสอบเบื้องต้นที่ไม่ต้องได้รับความยินยอมจากผู้ใช้ คุณสามารถ ใช้ผลการทดสอบนี้เพื่อตัดสินใจว่าจะเริ่มโฟลว์Firebase PNVหรือ ใช้วิธีอื่นในการยืนยันหมายเลขโทรศัพท์ เช่น SMS

หากต้องการตรวจสอบความเข้ากันได้ของอุปกรณ์ ให้เรียกเมธอด getVerificationSupportInfo() ขณะที่เซสชันทดสอบทำงานอยู่ เมธอดนี้จะแสดงรายการโทเค็นทดสอบทั้งหมดที่ใช้งานอยู่ในโปรเจ็กต์ หลังจากนำแอปไปใช้งานจริงแล้ว เมธอดนี้จะแสดงผลลัพธ์สำหรับซิมแต่ละรายการในอุปกรณ์

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 ให้เรียกเมธอด 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() จะดำเนินการโฟลว์การยืนยันหมายเลขโทรศัพท์ทั้งหมด ซึ่งรวมถึง

  • ใช้ Credential Manager ของ Android เพื่อขอความยินยอมของผู้ใช้ในการแชร์หมายเลขโทรศัพท์
  • ส่งคำขอไปยังแบ็กเอนด์ Firebase PNV
  • แสดงโทเค็นที่มีหมายเลขโทรศัพท์ที่ยืนยันแล้วสำหรับอุปกรณ์ (ในแอปเวอร์ชันที่ใช้งานจริง ระบบจะเรียกเก็บเงินในขั้นตอนนี้)

ขั้นตอนถัดไป

  • หน้านี้แสดงรายละเอียดเกี่ยวกับวิธีผสานรวมกับ Firebase PNV โดยใช้ API แบบเรียกครั้งเดียวที่รวมเป็นหนึ่งเดียว การเรียกเมธอดเดียวจะจัดการโฟลว์ผู้ใช้ทั้งหมด ตั้งแต่การขอความยินยอมของผู้ใช้ไปจนถึงการเรียกเครือข่ายที่จำเป็นไปยังแบ็กเอนด์Firebase PNVFirebase PNV การใช้เมธอดนี้จะช่วยลดขั้นตอนการผสานรวมให้เหลือเพียงการเรียกใช้เมธอดเดียว

    เราขอแนะนำ API นี้สำหรับนักพัฒนาแอปส่วนใหญ่ อย่างไรก็ตาม หากคุณมีข้อกำหนดเฉพาะ ที่ไลบรารีไม่รองรับ โปรดดูหน้า ปรับแต่งโฟลว์เพื่อดูข้อมูลเกี่ยวกับการ ติดตั้งใช้งานโฟลว์ที่กำหนดเองFirebase Phone Number Verification

  • หากคุณใช้หมายเลขโทรศัพท์ที่ยืนยันแล้วนอกไคลเอ็นต์แอป คุณควรส่งโทเค็นแทนหมายเลขโทรศัพท์เองเพื่อให้ยืนยันความสมบูรณ์ของโทเค็นได้เมื่อใช้งาน ดูยืนยันโทเค็นFirebase PNV

  • หลังจากติดตั้งใช้งานและทดสอบโฟลว์Firebase PNVและการผสานรวมแบ็กเอนด์ ของแอปแล้ว คุณสามารถนำแอปไปใช้งานจริงเพื่อเริ่มรับหมายเลขโทรศัพท์ที่ยืนยันแล้วจริง ดูอัปเกรดเป็นโหมดเวอร์ชันที่ใช้งานจริง