From 7d0b17c2389292681427015be668c0f369e8a3c8 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Thu, 24 Jul 2025 15:34:28 +0200 Subject: [PATCH 1/2] feat(app-check): remove deprecated functions --- .../firebase_app_check/android/build.gradle | 2 - .../FlutterFirebaseAppCheckPlugin.java | 44 ------------------- .../lib/src/android_provider.dart | 5 --- .../utils/provider_to_string.dart | 3 -- 4 files changed, 54 deletions(-) diff --git a/packages/firebase_app_check/firebase_app_check/android/build.gradle b/packages/firebase_app_check/firebase_app_check/android/build.gradle index 467c4a32280c..099e28aab3c1 100644 --- a/packages/firebase_app_check/firebase_app_check/android/build.gradle +++ b/packages/firebase_app_check/firebase_app_check/android/build.gradle @@ -67,8 +67,6 @@ android { implementation 'com.google.firebase:firebase-appcheck-debug' implementation 'com.google.firebase:firebase-appcheck-playintegrity' implementation 'androidx.annotation:annotation:1.7.0' - // SafetyNet is deprecated and not part of Firebase BOM - implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.2' } } diff --git a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java index b82275e556e2..f4bc96b1918e 100644 --- a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java +++ b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java @@ -16,7 +16,6 @@ import com.google.firebase.appcheck.FirebaseAppCheck; import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory; import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory; -import com.google.firebase.appcheck.safetynet.*; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.EventChannel; @@ -36,7 +35,6 @@ public class FlutterFirebaseAppCheckPlugin private final Map streamHandlers = new HashMap<>(); private final String debugProvider = "debug"; - private final String safetyNetProvider = "safetyNet"; private final String playIntegrity = "playIntegrity"; @Nullable private BinaryMessenger messenger; @@ -88,48 +86,6 @@ private Task getLimitedUseAppCheckToken(Map arguments) { return taskCompletionSource.getTask(); } - // SafetyNet is deprecated and is already annotated as such on the user facing Dart API. Please remove annotation when SafetyNet is removed. - @SuppressWarnings("deprecation") - private Task activate(Map arguments) { - TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); - - cachedThreadPool.execute( - () -> { - try { - String provider = (String) Objects.requireNonNull(arguments.get("androidProvider")); - - switch (provider) { - case debugProvider: - { - FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); - firebaseAppCheck.installAppCheckProviderFactory( - DebugAppCheckProviderFactory.getInstance()); - break; - } - case safetyNetProvider: - { - FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); - firebaseAppCheck.installAppCheckProviderFactory( - SafetyNetAppCheckProviderFactory.getInstance()); - break; - } - case playIntegrity: - { - FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); - firebaseAppCheck.installAppCheckProviderFactory( - PlayIntegrityAppCheckProviderFactory.getInstance()); - break; - } - } - taskCompletionSource.setResult(null); - } catch (Exception e) { - taskCompletionSource.setException(e); - } - }); - - return taskCompletionSource.getTask(); - } - private Task getToken(Map arguments) { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/android_provider.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/android_provider.dart index 065b679198ee..93cfdf5c012d 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/android_provider.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/android_provider.dart @@ -6,11 +6,6 @@ enum AndroidProvider { // The debug provider debug, - // The safety net provider (deprecated) - @Deprecated( - 'Safety Net provider is deprecated and will be removed in a future release. Play Integrity is the recommended provider.', - ) - safetyNet, // The play integrity provider (Firebase recommended) playIntegrity } diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/utils/provider_to_string.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/utils/provider_to_string.dart index 8f34852330a1..213047b44909 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/utils/provider_to_string.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/utils/provider_to_string.dart @@ -8,9 +8,6 @@ import 'package:firebase_app_check_platform_interface/src/apple_provider.dart'; /// Converts [AndroidProvider] to [String] String getAndroidProviderString(AndroidProvider? provider) { switch (provider) { - // ignore: deprecated_member_use_from_same_package - case AndroidProvider.safetyNet: - return 'safetyNet'; case AndroidProvider.debug: return 'debug'; case AndroidProvider.playIntegrity: From d38d11e758caaacb77d432be3aca5ed09ebd9ebb Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Fri, 25 Jul 2025 14:16:59 +0200 Subject: [PATCH 2/2] fix ci --- .../FlutterFirebaseAppCheckPlugin.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java index f4bc96b1918e..2f49368edea1 100644 --- a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java +++ b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java @@ -86,6 +86,39 @@ private Task getLimitedUseAppCheckToken(Map arguments) { return taskCompletionSource.getTask(); } + private Task activate(Map arguments) { + TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); + + cachedThreadPool.execute( + () -> { + try { + String provider = (String) Objects.requireNonNull(arguments.get("androidProvider")); + + switch (provider) { + case debugProvider: + { + FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); + firebaseAppCheck.installAppCheckProviderFactory( + DebugAppCheckProviderFactory.getInstance()); + break; + } + case playIntegrity: + { + FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); + firebaseAppCheck.installAppCheckProviderFactory( + PlayIntegrityAppCheckProviderFactory.getInstance()); + break; + } + } + taskCompletionSource.setResult(null); + } catch (Exception e) { + taskCompletionSource.setException(e); + } + }); + + return taskCompletionSource.getTask(); + } + private Task getToken(Map arguments) { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>();