Để đảm bảo khi phát hành lên App Store hoặc Play Store, App Check hoạt động chính xác, chúng ta cần kiểm tra việc lấy token thành công khi bản build ứng dụng ở chế độ release.
Nếu bạn sử dụng thư viện Flutter firebase_app_check, vui lòng lưu ý các vấn đề sau:
Flutter firebase_app_check sử dụng các provider mặc định: Play Integrity trên Android, Device Check trên nền tảng Apple.
Tuy nhiên, trong phiên bản cũ firebase_app_check 0.0.9+1, trên Android sử dụng Safety Net provider. Safety Net provider đã bị ngưng hỗ trợ và bị gỡ bỏ. Play Integrity là provider được khuyến nghị.
Mã nguồn triển khai:
// Khởi tạo
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
androidProvider: kDebugMode ? AndroidProvider.debug : AndroidProvider.playIntegrity,
);
// Lấy appCheckToken
String? appCheckToken;
try {
appCheckToken = await FirebaseAppCheck.instance.getToken();
} catch (e) {}
debugPrint("appCheckToken: $appCheckToken");Sử dụng App Check với DeviceCheck trên iOS
Lưu ý rằng Flutter iOS sử dụng Device Check chứ không phải App Attest.
Tham khảo: docs/app-check/ios/devicecheck-provider
Sử dụng App Check với Play Integrity trên Android
Lưu ý rằng Flutter Android sử dụng Play Integrity chứ không phải Safety Net.
AppCheck Play Integrity chỉ có thể lấy token thành công nếu ứng dụng được cài đặt thông qua Play Store. Nếu bạn cài đặt trực tiếp từ file APK hoặc qua App Center..., bạn không thể lấy được token. Đối với Safety Net, bạn có thể lấy token thành công ngay cả khi cài đặt trực tiếp từ file APK.
Trong play.google.com/console, sau khi liên kết với dự án Firebase trong App integrity, bạn cần tạo một bản Internal testing để có thể cài đặt ứng dụng từ Play Store và lấy token thành công.
Nội dung liên quan
Tạo upload keystore
Tham khảo: android#create-an-upload-keystore
Tham chiếu keystore từ ứng dụng
Tham khảo: android#reference-the-keystore-from-the-app
Cấu hình signing trong gradle
Tham khảo: android#configure-signing-in-gradle