Sử dụng tính năng Kiểm tra ứng dụng bằng trình cung cấp dịch vụ gỡ lỗi bằng Flutter

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.

Nền tảng của Apple

Sau đây là cách sử dụng nhà cung cấp dịch vụ 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ộ):

  1. Kích hoạt App Check bằng nhà cung cấp dịch vụ gỡ lỗi ngay sau khi bạn khởi chạy ứng dụng Firebase:

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. Bật tính năng ghi nhật ký gỡ lỗi trong dự án Xcode (phiên bản 11.0 trở lên):

    1. Mở Product > Scheme > Edit scheme (Sản phẩm > Lược đồ > Chỉnh sửa lược đồ).
    2. Chọn Run (Chạy) trong trình đơn bên trái, rồi chọn thẻ Arguments (Đối số).
    3. Trong mục Arguments Passed on Launch (Đối số được chuyển khi mở), hãy thêm -FIRDebugEnabled.
  3. Lấy mã thông báo gỡ lỗi:

    1. Mở ios/Runner.xcworkspace bằng Xcode rồi chạy ứng dụng trong trình mô phỏng hoặc trên thiết bị thử nghiệm.

    2. Mở bảng điều khiển Xcode rồi tìm mã gỡ lỗi App Check. Ví dụ:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Sao chép mã thông báo (ví dụ: 123a4567-b89c-12d3-e456-789012345678).

  4. Đăng ký mã thông báo gỡ lỗi bằng App Check:

    1. 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.

    2. 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.

    3. Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

    Ảnh chụp màn hình mục Manage Debug Tokens (Quản lý mã gỡ lỗi) trong bảng điều khiển của Firebase

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.

Android

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ộ):

  1. Kích hoạt App Check bằng nhà cung cấp dịch vụ gỡ lỗi ngay sau khi bạn khởi chạy ứng dụng Firebase:

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set androidProvider to `AndroidProvider.debug`
        androidProvider: AndroidProvider.debug,
      );
      runApp(App());
    }
    
    
  2. Lấy mã thông báo gỡ lỗi:

    1. Chạy ứng dụng trong trình mô phỏng hoặc trên thiết bị thử nghiệm.

    2. 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-789012345678
      
    3. Sao chép mã thông báo (ví dụ: 123a4567-b89c-12d3-e456-789012345678).

  3. Đăng ký mã thông báo gỡ lỗi bằng App Check:

    1. 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.

    2. 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.

    3. Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

    Ảnh chụp màn hình mục Manage Debug Tokens (Quản lý mã gỡ lỗi) trong bảng điều khiển của Firebase

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.

Web

Sau đây là cách sử dụng nhà cung cấp dịch vụ gỡ lỗi trong khi chạy ứng dụng từ localhost (ví dụ: trong quá trình phát triển cục bộ):

  1. Trong tệp web/index.html, hãy bật chế độ gỡ lỗi bằng cách đặt self.FIREBASE_APPCHECK_DEBUG_TOKEN thành true:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Chạy ứng dụng web của bạn trên thiết bị và mở công cụ dành cho nhà phát triển của trình duyệt. Trong bảng điều khiển gỡ lỗi, bạn sẽ thấy một mã gỡ lỗi. Ví dụ:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    

    Mã thông báo này được lưu trữ cục bộ trong trình duyệt của bạn và sẽ được dùng bất cứ khi nào bạn sử dụng ứng dụng của mình trong cùng một trình duyệt trên cùng một máy. Nếu bạn muốn sử dụng mã thông báo trong một trình duyệt khác hoặc trên một máy khác, hãy đặt self.FIREBASE_APPCHECK_DEBUG_TOKEN thành chuỗi mã thông báo thay vì true.

  3. Đăng ký mã thông báo gỡ lỗi bằng App Check:

    1. 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.

    2. 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.

    3. Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

    Ảnh chụp màn hình mục Manage Debug Tokens (Quản lý mã gỡ lỗi) trong bảng điều khiển của Firebase

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.