Sau khi App Check được thực thi cho một dịch vụ phụ trợ, các tính năng của ứng dụng phụ thuộc vào dịch vụ phụ trợ đó sẽ không chạy trong trình mô phỏng hoặc từ môi trường tích hợp liên tục (CI) vì những môi trường này không đủ điều kiện là thiết bị hợp lệ. Để chạy ứng dụng trong các môi trường này trong quá trình phát triển và kiểm thử, bạn cần tạo một bản gỡ lỗi của ứng dụng sử dụng App Check trình cung cấp gỡ lỗi thay vì trình cung cấp chứng thực sản xuất.
Sử dụng nhà cung cấp dịch vụ gỡ lỗi trong trình mô phỏng
Sau đây là cách sử dụng trình cung cấp gỡ lỗi trong khi chạy ứng dụng của bạn trong trình mô phỏng một cách tương tác (ví dụ: trong quá trình phát triển cục bộ):
Trong tệp Gradle (cấp ứng dụng) trong mô-đun của bạn (thường là
<project>/<app-module>/build.gradle.ktshoặc<project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện App Check 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.16.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
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 sử 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 App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
Trong bản gỡ lỗi, hãy định cấu hình App Check để sử dụng nhà máy trình cung cấp gỡ lỗi:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Lấy mã thông báo gỡ lỗi:
Chạy ứng dụng trong trình mô phỏng hoặc trên thiết bị thử nghiệm.
Tìm mã thông báo gỡ lỗi App Check trong nhật ký của bạn. Ví dụ:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678Sao chép mã thông báo (ví dụ:
123a4567-b89c-12d3-e456-789012345678).
Đăng ký mã thông báo gỡ lỗi bằng App Check:
Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > Ứng dụng.
Tìm ứng dụng của bạn, nhấp vào trình đơn mục bổ sung (), rồi chọn Quản lý mã gỡ lỗi.
Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

Sau khi bạn đăng ký mã thông báo bằng App Check, các dịch vụ phụ trợ của bạn sẽ chấp nhận mã thông báo đó là hợp lệ.
Mã thông báo này cho phép truy cập vào các dịch vụ phụ trợ của bạn mà không cần thiết bị hợp lệ, vì vậy, bạn cần giữ bí mật mã thông báo này. Không cam kết mã thông báo này với một kho lưu trữ công khai hoặc gửi mã thông báo này trong các bản dựng phát hành chính thức của ứng dụng. Nếu mã thông báo đã đăng ký bị xâm nhập, hãy xoá mã thông báo đó ngay lập tức bằng cách sử dụng Quản lý mã thông báo gỡ lỗi trong bảng điều khiển Firebase.
Sử dụng trình cung cấp gỡ lỗi để kiểm thử đơn vị trong môi trường CI
Sau đây là cách sử dụng trình cung cấp gỡ lỗi để kiểm thử đơn vị trong môi trường tích hợp liên tục (CI):
Trong bảng điều khiển Firebase, hãy tạo mã thông báo gỡ lỗi:
Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > Ứng dụng.
Tìm ứng dụng của bạn, nhấp vào trình đơn mục bổ sung (), rồi chọn Quản lý mã gỡ lỗi.
Làm theo hướng dẫn trên màn hình để tạo mã gỡ lỗi mới.
Mã thông báo này cho phép truy cập vào các dịch vụ phụ trợ của bạn mà không cần thiết bị hợp lệ, vì vậy, bạn cần giữ bí mật mã thông báo này. Không cam kết mã thông báo này với một kho lưu trữ công khai hoặc gửi mã thông báo này trong các bản dựng phát hành chính thức của ứng dụng. Nếu mã thông báo đã đăng ký bị xâm nhập, hãy xoá mã thông báo đó ngay lập tức bằng cách sử dụng Quản lý mã thông báo gỡ lỗi trong bảng điều khiển Firebase.

Thêm mã gỡ lỗi mà bạn vừa tạo vào kho khoá bảo mật của hệ thống CI (ví dụ: bí mật đã mã hoá của GitHub Actions hoặc biến đã mã hoá của Travis CI).
Nếu cần, hãy định cấu hình hệ thống CI để cung cấp mã gỡ lỗi trong môi trường CI dưới dạng một biến môi trường. Đặt tên cho biến, chẳng hạn như
APP_CHECK_DEBUG_TOKEN_FROM_CI.Trong tệp Gradle (cấp ứng dụng) trong mô-đun của bạn (thường là
<project>/<app-module>/build.gradle.ktshoặc<project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện App Check 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.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
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 dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
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 sử 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 dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
Thêm nội dung sau vào cấu hình của biến thể bản dựng CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""Trong các lớp kiểm thử, hãy sử dụng
DebugAppCheckTestHelperđể bao bọc mọi mã cần mã thông báo App Check:Kotlin
@RunWith(AndroidJunit4::class) class MyTests { private val debugAppCheckTestHelper = DebugAppCheckTestHelper.fromInstrumentationArgs() @Test fun testWithDefaultApp() { debugAppCheckTestHelper.withDebugProvider { // Test code that requires a debug AppCheckToken. } } @Test fun testWithNonDefaultApp() { debugAppCheckTestHelper.withDebugProvider( FirebaseApp.getInstance("nonDefaultApp") ) { // Test code that requires a debug AppCheckToken. } } }Java
@RunWith(AndroidJunit4.class) public class YourTests { private final DebugAppCheckTestHelper debugAppCheckTestHelper = DebugAppCheckTestHelper.fromInstrumentationArgs(); @Test public void testWithDefaultApp() { debugAppCheckTestHelper.withDebugProvider(() -> { // Test code that requires a debug AppCheckToken. }); } @Test public void testWithNonDefaultApp() { debugAppCheckTestHelper.withDebugProvider( FirebaseApp.getInstance("nonDefaultApp"), () -> { // Test code that requires a debug AppCheckToken. }); } }
Khi ứng dụng của bạn chạy trong môi trường CI, các dịch vụ phụ trợ sẽ chấp nhận mã thông báo mà ứng dụng gửi dưới dạng mã thông báo hợp lệ.