Thêm tính năng Xác minh bằng số điện thoại của Firebase vào ứng dụng Android

1. Tổng quan

Xác minh số điện thoại bằng Firebase (Firebase PNV hoặc FPNV) là một phương thức xác minh số điện thoại nhanh chóng và an toàn hơn. Không giống như phương thức xác minh dựa trên SMS, yêu cầu người dùng cuối nhận và nhập mã từ tin nhắn văn bản, Firebase PNV hoạt động bằng cách lấy số điện thoại được chỉ định cho SIM trong thiết bị trực tiếp từ nhà mạng được kết nối chỉ bằng một lần nhấn. Điều này giúp người dùng cuối cảm thấy thoải mái hơn, cải thiện độ tin cậy bằng cách không phụ thuộc vào việc gửi tin nhắn SMS và loại bỏ các vectơ tấn công thường bị khai thác khi sử dụng SMS.

Hộp thoại bật lên PNV của Firebase

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách tạo một tác nhân AI bằng giọng nói "Restaurant Finder" sử dụng tính năng Xác minh số điện thoại của Firebase để xác minh số điện thoại của người dùng cuối trước khi xác nhận đặt bàn.

Điều kiện tiên quyết

  • Phiên bản mới nhất của Android Studio
  • Thiết bị Android hoặc trình mô phỏng có API cấp 26 trở lên

Kiến thức bạn sẽ học được

  • Thiết lập dự án Firebase bằng Firebase PNV.
  • Sử dụng Firebase PNV ở Chế độ kiểm thử để tạo mẫu mà không cần tài khoản thanh toán hoặc SIM thực.
  • Tích hợp SDK PNV Firebase vào một ứng dụng Android.
  • Xác minh số điện thoại bằng API cuộc gọi đơn.
  • (Không bắt buộc) Chuẩn bị ứng dụng để phát hành công khai.

2. Thiết lập dự án mẫu

Tạo một dự án Firebase

  1. Đăng nhập vào bảng điều khiển của Firebase bằng Tài khoản Google của bạn.
  2. Nhấp vào nút này để tạo một dự án mới, rồi nhập tên dự án (ví dụ: Tera Bites).
  3. Nhấp vào Tiếp tục.
  4. Nếu được nhắc, hãy xem xét và chấp nhận các điều khoản của Firebase, rồi nhấp vào Tiếp tục.
  5. (Không bắt buộc) Bật tính năng hỗ trợ của AI trong bảng điều khiển của Firebase (còn gọi là "Gemini trong Firebase").
  6. Đối với lớp học lập trình này, bạn không cần Google Analytics, vì vậy hãy tắt lựa chọn Google Analytics.
  7. Nhấp vào Tạo dự án, đợi dự án được cấp phép rồi nhấp vào Tiếp tục.

Tải mã xuống

Chạy các lệnh sau để sao chép mã mẫu cho lớp học lập trình này:

git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android

Mở thư mục firebase-pnv-android trong Android Studio.

Kết nối dự án Android với Firebase

  1. Trong bảng điều khiển của Firebase, ở giữa trang tổng quan của dự án, hãy nhấp vào biểu tượng Android hoặc Thêm ứng dụng để chạy quy trình tạo ứng dụng.
  2. Trong trường Tên gói Android, hãy nhập tên gói của ứng dụng: com.google.firebase.example.fpnv.
  3. Nhấp vào Đăng ký ứng dụng.
  4. Làm theo hướng dẫn để tải tệp google-services.json xuống rồi di chuyển tệp đó vào thư mục app/ của mã mà bạn vừa tải xuống.
  5. Nhấp vào Tiếp theo.

Bật Firebase AI Logic

Lớp học lập trình này sử dụng Firebase AI Logic để hỗ trợ tác nhân AI bằng giọng nói. Cách bật Firebase AI Logic trong dự án Firebase:

  1. Trong bảng điều khiển của Firebase, hãy chuyển đến Dịch vụ AI > AI Logic.
  2. Nhấp vào Bắt đầu.
  3. Chọn sử dụng Gemini Developer API bằng cách nhấp vào Bắt đầu sử dụng API này.
  4. Nhấp vào Bật API rồi xác nhận.

3. Thiết lập PNV của Firebase ở chế độ thử nghiệm

Chế độ kiểm thử cho phép bạn xác minh một số điện thoại "ảo" bằng mã thông báo kiểm thử để phát triển.

Tham gia chương trình thử nghiệm công khai các dịch vụ hệ thống của Google

Đăng ký thiết bị phát triển của bạn vào kênh thử nghiệm của các dịch vụ hệ thống của Google để sử dụng chế độ kiểm thử:

  1. Duyệt đến trang Kiểm thử ứng dụng Android – Dịch vụ hệ thống của Google.
  2. Nhấp vào Trở thành người thử nghiệm.

Bạn hiện là người kiểm thử phiên bản thử nghiệm của Dịch vụ hệ thống của Google.

Thêm phần phụ thuộc Firebase PNV

Trong cơ sở mã của dự án Android, các phần phụ thuộc cho thư viện Firebase PNV và Firebase AI Logic đã được xác định trong tệp /gradle/versions.toml:

[versions]
# ... other dependencies
firebaseBom = "34.12.0"

[libraries]
# ... other libraries
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-ai-logic = { module = "com.google.firebase:firebase-ai" }
firebase-pnv = { module = "com.google.firebase:firebase-pnv" }

Trong tệp Gradle của mô-đun (cấp ứng dụng) (thường là /app/build.gradle.kts), hãy khai báo phần phụ thuộc cho thư viện Firebase PNV:

dependencies {
  // ... other dependencies
  implementation(platform(libs.firebase.bom))
  implementation(libs.firebase.ai.logic)

  // Add this line
  implementation(libs.firebase.pnv)

  // ...
}

Tạo mã thông báo kiểm thử

  1. Trong bảng điều khiển của Firebase, hãy chuyển đến phần Bảo mật > Xác minh bằng điện thoại.
  2. Chọn thẻ Kiểm thử.
  3. Chọn mã quốc gia cho số điện thoại kiểm thử của bạn rồi nhấp vào Tạo mã thông báo.
  4. Sao chép chuỗi mã thông báo đã tạo.

Bật phiên kiểm thử trong mã

  1. Quay lại dự án Android, hãy mở tệp ChatViewModel.kt rồi tìm hàm verifyPhoneNumber().
  2. Khởi chạy ứng dụng FirebasePhoneNumberVerification và bật phiên thử nghiệm, dán mã thông báo mà bạn đã sao chép từ bảng điều khiển của Firebase:
    suspend fun verifyPhoneNumber(): String {
        // Initialize Firebase Phone Number Verification
        val fpnv = FirebasePhoneNumberVerification.getInstance(context!!)
    
        // Enable Test session
        fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP")
    
        // Trigger the Firebase PNV pop up
        val response = fpnv.getVerifiedPhoneNumber().await()
        val phoneNumber = response.getPhoneNumber()
    
        return phoneNumber
    }
    

4. Chạy ứng dụng

Giờ đây, khi đã triển khai PNV của Firebase, bạn có thể chạy ứng dụng.

  1. Trong Android Studio, hãy nhấp vào Run (Chạy) để chạy ứng dụng trong trình mô phỏng Android hoặc trên một thiết bị thực.
  2. Sau khi ứng dụng khởi chạy, bạn sẽ thấy một màn hình như sau:
    Ứng dụng Firebase PNV đang chạy
  3. Nhấp vào Bắt đầu cuộc gọi rồi tự giới thiệu.
    Ứng dụng Firebase PNV đang chạy
  4. Trợ lý thoại AI sẽ nhắc bạn cung cấp thông tin chi tiết về việc đặt phòng. Sau khi bạn cung cấp thông tin, hệ thống sẽ nhắc bạn nhìn vào màn hình để xác minh số điện thoại:
    Ứng dụng Firebase PNV đang chạy
  5. Sau khi hoàn tất, bạn sẽ thấy màn hình xác minh đã hoàn tất:
    Ứng dụng Firebase PNV đang chạy
  6. Nhấp vào Kết thúc phiên để kết thúc cuộc gọi.

5. (Không bắt buộc) Nâng cấp lên chế độ phát hành công khai

Nâng cấp gói giá của Firebase

Để sử dụng PNV Firebase ở chế độ phát hành công khai, dự án Firebase của bạn cần phải sử dụng gói giá trả theo mức sử dụng (Blaze), tức là dự án đó được liên kết với một tài khoản thanh toán trên Cloud.

Để nâng cấp dự án lên gói Blaze, hãy làm theo các bước sau:

  1. Trong bảng điều khiển của Firebase, hãy chọn nâng cấp gói.
  2. Chọn gói Blaze. Làm theo hướng dẫn trên màn hình để liên kết một tài khoản thanh toán trên đám mây với dự án của bạn.
    Nếu cần tạo một tài khoản thanh toán trên đám mây trong quá trình nâng cấp này, bạn có thể cần quay lại quy trình nâng cấp trong bảng điều khiển của Firebase để hoàn tất quá trình nâng cấp.

Bật chế độ sản xuất PNV của Firebase

  1. Thêm dấu vân tay SHA-256 của ứng dụng:
    1. Trong bảng điều khiển của Firebase, hãy chuyển đến trang Cài đặt > Chung.
    2. Di chuyển xuống thẻ Ứng dụng của bạn rồi tìm ứng dụng Android mà bạn muốn.
    3. Trong trường Dấu vân tay chứng chỉ SHA, hãy thêm dấu vân tay SHA-256. Hãy tham khảo phần Xác thực ứng dụng để biết thông tin chi tiết về cách lấy dấu vân tay SHA-256 của ứng dụng.
  2. Quay lại phần Bảo mật > Xác minh qua điện thoại.
  3. Nhấp vào Thiết lập kênh phát hành công khai. Bạn sẽ thấy danh sách các ứng dụng trong dự án sẽ được bật cho bản phát hành công khai và có thể thêm các ứng dụng khác.
  4. Gửi ứng dụng của bạn để xác minh thương hiệu OAuth và xem xét chính sách quyền riêng tư. Google Cloud sẽ xác minh rằng bạn đang xác định rõ ràng và chính xác ứng dụng của mình cũng như chính sách quyền riêng tư của ứng dụng.
    Để bắt đầu quy trình xem xét, hãy nhấp vào Tiến hành trong Google Cloud. Đôi khi, quá trình này có thể mất 24 giờ hoặc lâu hơn.
  5. Trong khi chờ xác minh thương hiệu, hãy xem các điều khoản dành riêng cho dịch vụ PNV của Firebase (có đường liên kết trong bảng điều khiển).
  6. Sau khi ứng dụng của bạn vượt qua quy trình xác minh thương hiệu, hãy đánh dấu vào hộp để xác nhận các điều khoản cụ thể của dịch vụ, rồi nhấp vào Bật.

PNV của Firebase hiện đang hoạt động ở chế độ phát hành chính thức.

Xoá mã kiểm thử

Trong dự án Android, hãy xoá dòng fpnv.enableTestSession(...).

Di chuyển Firebase AI Logic để sử dụng Vertex AI

Nếu đang sử dụng các khoản tín dụng trong tài khoản thanh toán, bạn sẽ không thể sử dụng các khoản tín dụng đó với Gemini Developer API. Tuy nhiên, bạn có thể sử dụng các khoản tín dụng này với Vertex AI Gemini API.

  1. Trong bảng điều khiển của Firebase, hãy chuyển đến Dịch vụ AI > AI Logic.
  2. Nhấp vào Cài đặt.
  3. Trong phần Vertex AI Gemini API, hãy nhấp vào Bật.
  4. Trong dự án Android, hãy thay đổi quá trình khởi chạy Firebase AI Logic để sử dụng phần phụ trợ Vertex AI thay vì Google AI:
    val model = Firebase.ai(
        backend = GenerativeBackend.vertexAI(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. Xin chúc mừng!

Bạn đã tích hợp thành công tính năng Xác minh số điện thoại của Firebase vào một ứng dụng Android!

Nội dung đã đề cập

  • Thiết lập dự án cho Firebase PNV.
  • Sử dụng chế độ thử nghiệm để tạo mẫu.
  • Triển khai API một lần gọi PNV của Firebase.
  • Nâng cấp lên chế độ phát hành công khai.

Các bước tiếp theo