Bắt đầu sử dụng tính năng Xác minh số điện thoại của Firebase trên Android

Trang này mô tả cách bắt đầu sử dụng Firebase Phone Number Verification trong một ứng dụng Android. Hãy xem phần tổng quan để biết nội dung mô tả chung về tính năng này.

Bằng cách làm theo các bước trên trang này, bạn có thể nhanh chóng bắt đầu triển khai quy trình cho người dùng đối với Firebase PNV. Để kiểm thử, bạn sẽ tạo một mã thông báo chỉ dùng cho kiểm thử và mã thông báo này sẽ phân giải thành một số điện thoại giả. Khi sử dụng mã thông báo kiểm thử này, bạn có thể bắt đầu thêm Firebase PNV vào ứng dụng mà không cần tài khoản thanh toán hoặc thiết bị có SIM thực.

Sau khi hài lòng với trải nghiệm người dùng Firebase PNV trong ứng dụng, bạn có thể làm theo một số bước bổ sung để đưa ứng dụng vào giai đoạn phát hành công khai.

Trước khi bắt đầu

1. Thêm thư viện Firebase PNV vào ứng dụng của bạn

Trong tệp Gradle (cấp ứng dụng) của mô-đun (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện Firebase Phone Number Verification cho Android. Bạn nên sử dụng Firebase Android BoM để kiểm soát việc tạo phiên bản thư viện.

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")
}

Bằng cách sử dụng Firebase Android BoM, ứng dụng của bạn sẽ luôn sử dụng những phiên bản tương thích của thư viện Android trên Firebase.

(Cách khác)  Thêm phần phụ thuộc của thư viện Firebase mà không dùng BoM

Nếu chọn không sử dụng Firebase BoM, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc của thư viện đó.

Xin lưu ý rằng nếu sử dụng nhiều thư viện Firebase trong ứng dụng, bạn nên sử dụng BoM để quản lý các phiên bản thư viện, nhằm đảm bảo rằng tất cả các phiên bản đều tương thích.

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. Khởi chạy thư viện Firebase PNV ở chế độ kiểm thử

  1. Trên thẻ Kiểm thử của phần FirebaseXác minh qua điện thoại trên bảng điều khiển, hãy nhấp vào nút Tạo mã thông báo.

  2. Trong ứng dụng, hãy khởi chạy ứng dụng Firebase PNV để sử dụng một phiên kiểm thử:

    Kotlin

    Nhập thư viện:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Tạo một phiên bản mới của lớp FirebasePhoneNumberVerification và sử dụng phiên bản này cho tất cả các lệnh gọi Firebase PNV. Phương thức getInstance() không trả về một đối tượng singleton, vì vậy, bạn phải giữ lại đối tượng đó sau khi tạo.

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    Bật một phiên kiểm thử bằng mã thông báo mà bạn đã tạo ở bước trước:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Bạn chỉ được gọi phương thức này một lần trên một thực thể của FirebasePhoneNumberVerification; các lệnh gọi tiếp theo sẽ gửi lỗi.

Mã thông báo kiểm thử có TTL là 7 ngày; sau khoảng thời gian này, bạn sẽ cần tạo một mã thông báo mới để bật các phiên kiểm thử. Mã thông báo kiểm thử hoạt động trên các thiết bị thực và trình mô phỏng, nên rất phù hợp để tạo mẫu trải nghiệm người dùng trong ứng dụng hoặc kiểm thử trong quy trình tích hợp liên tục/phân phối liên tục (CI/CD).

3. Đề xuất: Kiểm tra xem Firebase PNV có được hỗ trợ hay không

Để giúp bạn xác định thời điểm hiển thị giao diện người dùng nhập số hoặc giao diện người dùng giải thích, bạn nên kiểm tra xem thiết bị và thẻ SIM của thiết bị có hỗ trợ Firebase PNV hay không khi khởi chạy ứng dụng. Đây là một bước kiểm tra trước và không yêu cầu sự đồng ý của người dùng. Bạn có thể sử dụng kết quả của kiểm thử này để quyết định có nên bắt đầu quy trình Firebase PNV hay sử dụng một phương thức xác minh số điện thoại thay thế, chẳng hạn như SMS.

Để kiểm tra khả năng tương thích của thiết bị, hãy gọi phương thức getVerificationSupportInfo(). Trong khi bạn có một phiên thử nghiệm đang hoạt động, phương thức này sẽ trả về danh sách mọi mã thông báo thử nghiệm đang hoạt động trong dự án của bạn. Sau đó, sau khi bạn phát hành ứng dụng, phương thức này sẽ trả về kết quả cho từng SIM trong thiết bị.

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. Bắt đầu quy trình xác minh

Để bắt đầu quy trình Firebase PNV, hãy gọi phương thức 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.
  }

Phương thức getVerifiedPhoneNumber() thực hiện toàn bộ quy trình xác minh số điện thoại, bao gồm:

  • Sử dụng Trình quản lý thông tin xác thực Android để có được sự đồng ý của người dùng về việc chia sẻ số điện thoại của họ.
  • Đưa ra yêu cầu đối với phần phụ trợ Firebase PNV.
  • Trả về một mã thông báo chứa số điện thoại đã xác minh của thiết bị (trong một ứng dụng phát hành công khai, đây là thời điểm thanh toán diễn ra).

Các bước tiếp theo

  • Trang này trình bày chi tiết cách tích hợp với Firebase PNV bằng API hợp nhất, một lệnh gọi duy nhất. Việc gọi một phương thức duy nhất sẽ xử lý toàn bộ quy trình người dùng Firebase PNV, từ việc lấy sự đồng ý của người dùng đến việc thực hiện các lệnh gọi mạng cần thiết đến phần phụ trợ Firebase PNV. Bằng cách sử dụng phương thức này, bạn sẽ giảm các bước tích hợp xuống thành một lệnh gọi phương thức duy nhất.

    API này được đề xuất cho hầu hết các nhà phát triển; tuy nhiên, nếu bạn có các yêu cầu cụ thể mà thư viện không đáp ứng được, hãy xem trang Tuỳ chỉnh quy trình Firebase Phone Number Verification để biết thông tin về cách triển khai quy trình tuỳ chỉnh.

  • Nếu sử dụng số điện thoại đã xác minh bên ngoài ứng dụng, bạn nên truyền mã thông báo thay vì chính số điện thoại để có thể xác minh tính toàn vẹn của số điện thoại khi sử dụng. Xem phần Xác minh mã thông báo Firebase PNV.

  • Sau khi triển khai và thử nghiệm quy trình Firebase PNV và quá trình tích hợp phụ trợ của ứng dụng, bạn có thể đưa ứng dụng vào giai đoạn phát hành công khai để bắt đầu nhận số điện thoại thực đã xác minh. Xem phần Nâng cấp lên chế độ phát hành công khai.