เริ่มต้นใช้งานการยืนยันหมายเลขโทรศัพท์ด้วย 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 เวอร์ชันที่เข้ากันได้อยู่เสมอ

(ทางเลือก)  เพิ่มการอ้างอิงไลบรารี 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 PNVโฟลว์ผู้ใช้Firebase PNVทั้งหมด ตั้งแต่การขอรับความยินยอมจากผู้ใช้ไปจนถึงการโทรผ่านเครือข่ายที่จำเป็นไปยังแบ็กเอนด์ การใช้วิธีนี้จะช่วยลดขั้นตอนการผสานรวมให้เหลือเพียงการเรียกใช้เมธอดเดียว

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

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

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