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 bạn đăng ký tính năng Kiểm tra ứng dụng, ứng dụng của bạn thường sẽ không chạy trong trình mô phỏng hoặc trong môi trường tích hợp liên tục (CI) vì những không đủ điều kiện là thiết bị hợp lệ. Nếu bạn muốn chạy ứng dụng bằng môi trường trong quá trình phát triển và thử nghiệm, bạn có thể tạo một bản gỡ lỗi ứng dụng của bạn sử dụng trình cung cấp dịch vụ gỡ lỗi Kiểm tra ứng dụng thay vì chứng thực thực Google Cloud.

Nền tảng của Apple

Sử dụng trình cung cấp gỡ lỗi khi chạy ứng dụng trong trình mô phỏng theo cách tương tác (ví dụ: trong quá trình phát triển), hãy làm như sau:

  1. Kích hoạt tính năng Kiểm tra ứng dụng bằng trình cung cấp gỡ lỗi ngay sau khi bạn khởi chạy ứng dụng Firebase của bạn:

    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 của bạn (phiên bản 11.0 trở lên):

    1. Mở Sản phẩm > Lược đồ > Chỉnh sửa lược đồ.
    2. Chọn Run (Chạy) trên trình đơn bên trái, sau đó chọn thẻ Arguments (Đối số).
    3. Trong phần Đối số đã thông qua khi khởi chạy, hãy thêm -FIRDebugEnabled.
  3. Mở ios/Runner.xcworkspace bằng Xcode rồi chạy ứng dụng của bạn trong Trình mô phỏng. Ứng dụng của bạn sẽ in một mã gỡ lỗi cục bộ ở kết quả gỡ lỗi khi Firebase sẽ cố gắng gửi một yêu cầu đến phần phụ trợ. Ví dụ:

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Trong phần Kiểm tra ứng dụng trong bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi từ trình đơn mục bổ sung. Sau đó, hãy đăng ký mã thông báo gỡ lỗi mà bạn đã đăng nhập trước đó .

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã gỡ lỗi

Sau khi bạn đăng ký mã thông báo này, các dịch vụ phụ trợ của Firebase sẽ chấp nhận mã đó là hợp lệ.

Bởi vì mã thông báo này cho phép truy cập vào các tài nguyên Firebase của bạn mà không cần thiết bị hợp lệ, điều quan trọng là bạn phải bảo mật thông tin đó. Không cam kết kho lưu trữ công khai và nếu một mã thông báo đã đăng ký bị xâm phạm, hãy thu hồi mã đó ngay trong bảng điều khiển của Firebase.

Android

Để sử dụng trình cung cấp gỡ lỗi khi chạy ứng dụng Flutter trong môi trường Android, triển khai mã sau trong ứng dụng Flutter của bạn:

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(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
    // Set androidProvider to `AndroidProvider.debug`
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

Ứng dụng của bạn sẽ in một mã gỡ lỗi cục bộ ra kết quả gỡ lỗi khi Firebase cố gắng để gửi một yêu cầu đến chương trình phụ trợ. Ví dụ:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. Trong phần Kiểm tra ứng dụng trong bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi từ trình đơn mục bổ sung. Sau đó, hãy đăng ký mã thông báo gỡ lỗi mà bạn đã đăng nhập trước đó .

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã gỡ lỗi

Sau khi bạn đăng ký mã thông báo này, các dịch vụ phụ trợ của Firebase sẽ chấp nhận mã đó là hợp lệ.

Web

Để sử dụng trình cung cấp gỡ lỗi trong khi chạy ứng dụng trên localhost (trong phát triển), hãy làm như sau:

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

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Chạy ứng dụng web của bạn trên máy và mở công cụ 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ã thông báo gỡ lỗi:

    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 sử dụng bất cứ khi nào bạn sử dụng ứng dụng của bạn 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 trình duyệt khác hoặc trên một máy khác, hãy đặt self.FIREBASE_APPCHECK_DEBUG_TOKEN vào chuỗi mã thông báo thay vì true.

  3. Trong phần Kiểm tra ứng dụng trong bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi từ trình đơn mục bổ sung. Sau đó, hãy đăng ký mã thông báo gỡ lỗi mà bạn đã đăng nhập trước đó .

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã gỡ lỗi

Sau khi bạn đăng ký mã thông báo này, các dịch vụ phụ trợ của Firebase sẽ chấp nhận mã đó là hợp lệ.

Bởi vì mã thông báo này cho phép truy cập vào các tài nguyên Firebase của bạn mà không cần thiết bị hợp lệ, điều quan trọng là bạn phải bảo mật thông tin đó. Không cam kết kho lưu trữ công khai và nếu một mã thông báo đã đăng ký bị xâm phạm, hãy thu hồi mã đó ngay trong bảng điều khiển của Firebase.