From 6acdae546a4b23bb8319d2d6aa10505ee8b31ec0 Mon Sep 17 00:00:00 2001 From: xVemu <38427679+xVemu@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:39:01 +0200 Subject: [PATCH 1/3] feat(app_check, mobile): add option to pass debugTokens in initialization --- .../FlutterFirebaseAppCheckPlugin.java | 1 + .../appcheck/FlutterFirebaseAppRegistrar.java | 27 +++++++++++++++-- .../firebase_app_check/FLTAppCheckProvider.m | 13 ++++++-- .../FLTAppCheckProviderFactory.m | 8 +++-- .../FLTFirebaseAppCheckPlugin.m | 3 +- .../include/FLTAppCheckProvider.h | 2 +- .../include/FLTAppCheckProviderFactory.h | 2 +- .../lib/src/firebase_app_check.dart | 7 +++++ .../method_channel_firebase_app_check.dart | 6 ++++ ...platform_interface_firebase_app_check.dart | 2 ++ .../firebase_app_check_e2e_test.dart | 30 +++++++++++++++++++ 11 files changed, 90 insertions(+), 11 deletions(-) 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..b3387a3e4be8 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 @@ -102,6 +102,7 @@ private Task activate(Map arguments) { case debugProvider: { FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); + FlutterFirebaseAppRegistrar.debugToken = (String) arguments.get("androidDebugToken"); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance()); break; diff --git a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java index 69aaee5288c5..7083eee9025c 100644 --- a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java +++ b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java @@ -5,17 +5,38 @@ package io.flutter.plugins.firebase.appcheck; import androidx.annotation.Keep; +import androidx.annotation.Nullable; + +import com.google.firebase.appcheck.debug.InternalDebugSecretProvider; import com.google.firebase.components.Component; import com.google.firebase.components.ComponentRegistrar; import com.google.firebase.platforminfo.LibraryVersionComponent; + +import java.util.Arrays; import java.util.Collections; import java.util.List; @Keep -public class FlutterFirebaseAppRegistrar implements ComponentRegistrar { +public class FlutterFirebaseAppRegistrar implements ComponentRegistrar, InternalDebugSecretProvider { + private static final String DEBUG_SECRET_NAME = "fire-app-check-debug-secret"; + + public static String debugToken; + @Override public List> getComponents() { - return Collections.>singletonList( - LibraryVersionComponent.create(BuildConfig.LIBRARY_NAME, BuildConfig.LIBRARY_VERSION)); + Component library = LibraryVersionComponent.create(BuildConfig.LIBRARY_NAME, + BuildConfig.LIBRARY_VERSION); + + Component debugSecretProvider = Component.builder(InternalDebugSecretProvider.class) + .name(DEBUG_SECRET_NAME) + .factory(container -> this).build(); + + return Arrays.>asList(library, debugSecretProvider); + } + + @Nullable + @Override + public String getDebugSecret() { + return debugToken; } } diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m index 09d966017e20..d4dd19f997b1 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m @@ -14,10 +14,19 @@ - (id)initWithApp:app { return self; } -- (void)configure:(FIRApp *)app providerName:(NSString *)providerName { +- (void)configure:(FIRApp *)app + providerName:(NSString *)providerName + debugToken:(NSString *)debugToken { if ([providerName isEqualToString:@"debug"]) { + if (debugToken != nil) { + // We have a debug token, so just need to stuff it in the environment and it will hook up + char *key = "FIRAAppCheckDebugToken", *value = (char *) [debugToken UTF8String]; + int overwrite = 1; + setenv(key, value, overwrite); + } + FIRAppCheckDebugProvider *provider = [[FIRAppCheckDebugProvider alloc] initWithApp:app]; - NSLog(@"Firebase App Check Debug Token: %@", [provider localDebugToken]); + if(debugToken == nil) NSLog(@"Firebase App Check Debug Token: %@", [provider localDebugToken]); self.delegateProvider = provider; } diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProviderFactory.m b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProviderFactory.m index f6566f299321..3eee91a08fc8 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProviderFactory.m +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProviderFactory.m @@ -25,13 +25,15 @@ @implementation FLTAppCheckProviderFactory self.providers[app.name] = [FLTAppCheckProvider new]; FLTAppCheckProvider *provider = self.providers[app.name]; // We set "deviceCheck" as this is currently what is default. Backward compatible. - [provider configure:app providerName:@"deviceCheck"]; + [provider configure:app providerName:@"deviceCheck" debugToken:nil]; } return self.providers[app.name]; } -- (void)configure:(FIRApp *)app providerName:(NSString *)providerName { +- (void)configure:(FIRApp *)app + providerName:(NSString *)providerName + debugToken:(NSString *)debugToken { if (self.providers == nil) { self.providers = [NSMutableDictionary new]; } @@ -41,7 +43,7 @@ - (void)configure:(FIRApp *)app providerName:(NSString *)providerName { } FLTAppCheckProvider *provider = self.providers[app.name]; - [provider configure:app providerName:providerName]; + [provider configure:app providerName:providerName debugToken:debugToken]; } @end diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m index 70337cd50ea3..7a31fb647399 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m @@ -123,9 +123,10 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)flutter - (void)activate:(id)arguments withMethodCallResult:(FLTFirebaseMethodCallResult *)result { NSString *appNameDart = arguments[@"appName"]; NSString *providerName = arguments[@"appleProvider"]; + NSString *debugToken = arguments[@"iosDebugToken"]; FIRApp *app = [FLTFirebasePlugin firebaseAppNamed:appNameDart]; - [self->providerFactory configure:app providerName:providerName]; + [self->providerFactory configure:app providerName:providerName debugToken:debugToken]; result.success(nil); } diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h index 87797e53def0..f3c6e313d99d 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h @@ -10,7 +10,7 @@ @property id delegateProvider; -- (void)configure:(FIRApp *)app providerName:(NSString *)providerName; +- (void)configure:(FIRApp *)app providerName:(NSString *)providerName debugToken:(NSString *)debugToken; - (id)initWithApp:(FIRApp *)app; diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h index b98d5a823626..4bbb72d89b9c 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h @@ -7,6 +7,6 @@ @property NSMutableDictionary *_Nullable providers; -- (void)configure:(FIRApp *_Nonnull)app providerName:(NSString *_Nonnull)providerName; +- (void)configure:(FIRApp *_Nonnull)app providerName:(NSString *_Nonnull)providerName debugToken:(NSString *)debugToken; @end diff --git a/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart index 812beb08ecd5..cbf5ca6c69e4 100644 --- a/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart @@ -55,16 +55,23 @@ class FirebaseAppCheck extends FirebasePluginPlatform { /// On iOS or macOS, the default provider is "device check". If you wish to set the provider to "app attest", "debug" or "app attest with fallback to device check" /// ("app attest" is only available on iOS 14.0+, macOS 14.0+), you may set the `appleProvider` property using the `AppleProvider` enum /// + /// `androidDebugToken` and `iosDebugToken` allow you to set a debug token for the "debug" provider on Android and iOS respectively. + /// On iOS you have to rerun app after changing `iosDebugToken`. + /// /// For more information, see [the Firebase Documentation](https://firebase.google.com/docs/app-check) Future activate({ WebProvider? webProvider, AndroidProvider androidProvider = AndroidProvider.playIntegrity, AppleProvider appleProvider = AppleProvider.deviceCheck, + String? androidDebugToken, + String? iosDebugToken, }) { return _delegate.activate( webProvider: webProvider, androidProvider: androidProvider, appleProvider: appleProvider, + androidDebugToken: androidDebugToken, + iosDebugToken: iosDebugToken, ); } diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart index edee4fbe09d0..aac3faa32782 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart @@ -78,6 +78,8 @@ class MethodChannelFirebaseAppCheck extends FirebaseAppCheckPlatform { WebProvider? webProvider, AndroidProvider? androidProvider, AppleProvider? appleProvider, + String? androidDebugToken, + String? iosDebugToken, }) async { try { await channel.invokeMethod('FirebaseAppCheck#activate', { @@ -85,10 +87,14 @@ class MethodChannelFirebaseAppCheck extends FirebaseAppCheckPlatform { // Allow value to pass for debug mode for unit testing if (defaultTargetPlatform == TargetPlatform.android || kDebugMode) 'androidProvider': getAndroidProviderString(androidProvider), + if(androidDebugToken != null) + 'androidDebugToken': androidDebugToken, if (defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.macOS || kDebugMode) 'appleProvider': getAppleProviderString(appleProvider), + if(iosDebugToken != null) + 'iosDebugToken': iosDebugToken, }); } on PlatformException catch (e, s) { convertPlatformException(e, s); diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart index a1b1e66826cb..63f390d882e7 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart @@ -66,6 +66,8 @@ abstract class FirebaseAppCheckPlatform extends PlatformInterface { WebProvider? webProvider, AndroidProvider? androidProvider, AppleProvider? appleProvider, + String? androidDebugToken, + String? iosDebugToken, }) { throw UnimplementedError('activate() is not implemented'); } diff --git a/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart b/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart index ca88b3262e5c..2ee223375baf 100644 --- a/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart +++ b/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart @@ -2,6 +2,8 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +import 'dart:io'; + import 'package:firebase_app_check/firebase_app_check.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/foundation.dart'; @@ -77,6 +79,34 @@ void main() { }, skip: kIsWeb, ); + + test( + 'debugToken on Android', + () async { + await expectLater( + FirebaseAppCheck.instance.activate( + androidProvider: AndroidProvider.debug, + androidDebugToken: 'debug_token', + ), + completes, + ); + }, + skip: !Platform.isAndroid, + ); + + test( + 'debugToken on iOS', + () async { + await expectLater( + FirebaseAppCheck.instance.activate( + iosDebugToken: 'debug_token', + appleProvider: AppleProvider.debug, + ), + completes, + ); + }, + skip: !Platform.isIOS, + ); }, ); } From e85fbac83aadc348b9c2bb1506e2542021344d18 Mon Sep 17 00:00:00 2001 From: xVemu <38427679+xVemu@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:28:09 +0100 Subject: [PATCH 2/3] refactor(app_check): rename iosDebugToken to appleDebugToken --- .../firebase_app_check/FLTFirebaseAppCheckPlugin.m | 2 +- .../firebase_app_check/lib/src/firebase_app_check.dart | 8 ++++---- .../method_channel/method_channel_firebase_app_check.dart | 6 +++--- .../platform_interface_firebase_app_check.dart | 2 +- .../firebase_app_check/firebase_app_check_e2e_test.dart | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m index 7a31fb647399..290cf29c7f11 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTFirebaseAppCheckPlugin.m @@ -123,7 +123,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)flutter - (void)activate:(id)arguments withMethodCallResult:(FLTFirebaseMethodCallResult *)result { NSString *appNameDart = arguments[@"appName"]; NSString *providerName = arguments[@"appleProvider"]; - NSString *debugToken = arguments[@"iosDebugToken"]; + NSString *debugToken = arguments[@"appleDebugToken"]; FIRApp *app = [FLTFirebasePlugin firebaseAppNamed:appNameDart]; [self->providerFactory configure:app providerName:providerName debugToken:debugToken]; diff --git a/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart index cbf5ca6c69e4..90b558c21dc8 100644 --- a/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check/lib/src/firebase_app_check.dart @@ -55,8 +55,8 @@ class FirebaseAppCheck extends FirebasePluginPlatform { /// On iOS or macOS, the default provider is "device check". If you wish to set the provider to "app attest", "debug" or "app attest with fallback to device check" /// ("app attest" is only available on iOS 14.0+, macOS 14.0+), you may set the `appleProvider` property using the `AppleProvider` enum /// - /// `androidDebugToken` and `iosDebugToken` allow you to set a debug token for the "debug" provider on Android and iOS respectively. - /// On iOS you have to rerun app after changing `iosDebugToken`. + /// `androidDebugToken` and `appleDebugToken` allow you to set a debug token for the "debug" provider on Android and Apple's systems, respectively. + /// On iOS, you must restart the app after changing the appleDebugToken. /// /// For more information, see [the Firebase Documentation](https://firebase.google.com/docs/app-check) Future activate({ @@ -64,14 +64,14 @@ class FirebaseAppCheck extends FirebasePluginPlatform { AndroidProvider androidProvider = AndroidProvider.playIntegrity, AppleProvider appleProvider = AppleProvider.deviceCheck, String? androidDebugToken, - String? iosDebugToken, + String? appleDebugToken, }) { return _delegate.activate( webProvider: webProvider, androidProvider: androidProvider, appleProvider: appleProvider, androidDebugToken: androidDebugToken, - iosDebugToken: iosDebugToken, + appleDebugToken: appleDebugToken, ); } diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart index aac3faa32782..ae3330966729 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart @@ -79,7 +79,7 @@ class MethodChannelFirebaseAppCheck extends FirebaseAppCheckPlatform { AndroidProvider? androidProvider, AppleProvider? appleProvider, String? androidDebugToken, - String? iosDebugToken, + String? appleDebugToken, }) async { try { await channel.invokeMethod('FirebaseAppCheck#activate', { @@ -93,8 +93,8 @@ class MethodChannelFirebaseAppCheck extends FirebaseAppCheckPlatform { defaultTargetPlatform == TargetPlatform.macOS || kDebugMode) 'appleProvider': getAppleProviderString(appleProvider), - if(iosDebugToken != null) - 'iosDebugToken': iosDebugToken, + if(appleDebugToken != null) + 'appleDebugToken': appleDebugToken, }); } on PlatformException catch (e, s) { convertPlatformException(e, s); diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart index 63f390d882e7..0bbd6a67220d 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/platform_interface/platform_interface_firebase_app_check.dart @@ -67,7 +67,7 @@ abstract class FirebaseAppCheckPlatform extends PlatformInterface { AndroidProvider? androidProvider, AppleProvider? appleProvider, String? androidDebugToken, - String? iosDebugToken, + String? appleDebugToken, }) { throw UnimplementedError('activate() is not implemented'); } diff --git a/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart b/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart index 2ee223375baf..2bc433e10f13 100644 --- a/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart +++ b/tests/integration_test/firebase_app_check/firebase_app_check_e2e_test.dart @@ -99,7 +99,7 @@ void main() { () async { await expectLater( FirebaseAppCheck.instance.activate( - iosDebugToken: 'debug_token', + appleDebugToken: 'debug_token', appleProvider: AppleProvider.debug, ), completes, From 6c11b352d8861ff7032ba65c074c49ade56606ec Mon Sep 17 00:00:00 2001 From: xVemu <38427679+xVemu@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:48:40 +0100 Subject: [PATCH 3/3] fix(app_check): fix debug token tests --- .../appcheck/FlutterFirebaseAppCheckPlugin.java | 3 ++- .../appcheck/FlutterFirebaseAppRegistrar.java | 16 ++++++++-------- .../firebase_app_check/FLTAppCheckProvider.m | 4 ++-- .../include/FLTAppCheckProvider.h | 4 +++- .../include/FLTAppCheckProviderFactory.h | 4 +++- .../method_channel_firebase_app_check.dart | 6 ++---- .../lib/firebase_app_check_web.dart | 2 ++ .../test/firebase_app_check_web_test.mocks.dart | 4 ++++ .../src/network/rest_transport_test.mocks.dart | 4 ++++ 9 files changed, 30 insertions(+), 17 deletions(-) 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 b3387a3e4be8..6fec2cf81a91 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 @@ -102,7 +102,8 @@ private Task activate(Map arguments) { case debugProvider: { FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); - FlutterFirebaseAppRegistrar.debugToken = (String) arguments.get("androidDebugToken"); + FlutterFirebaseAppRegistrar.debugToken = + (String) arguments.get("androidDebugToken"); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance()); break; diff --git a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java index 7083eee9025c..e40d9d900852 100644 --- a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java +++ b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppRegistrar.java @@ -6,30 +6,30 @@ import androidx.annotation.Keep; import androidx.annotation.Nullable; - import com.google.firebase.appcheck.debug.InternalDebugSecretProvider; import com.google.firebase.components.Component; import com.google.firebase.components.ComponentRegistrar; import com.google.firebase.platforminfo.LibraryVersionComponent; - import java.util.Arrays; -import java.util.Collections; import java.util.List; @Keep -public class FlutterFirebaseAppRegistrar implements ComponentRegistrar, InternalDebugSecretProvider { +public class FlutterFirebaseAppRegistrar + implements ComponentRegistrar, InternalDebugSecretProvider { private static final String DEBUG_SECRET_NAME = "fire-app-check-debug-secret"; public static String debugToken; @Override public List> getComponents() { - Component library = LibraryVersionComponent.create(BuildConfig.LIBRARY_NAME, - BuildConfig.LIBRARY_VERSION); + Component library = + LibraryVersionComponent.create(BuildConfig.LIBRARY_NAME, BuildConfig.LIBRARY_VERSION); - Component debugSecretProvider = Component.builder(InternalDebugSecretProvider.class) + Component debugSecretProvider = + Component.builder(InternalDebugSecretProvider.class) .name(DEBUG_SECRET_NAME) - .factory(container -> this).build(); + .factory(container -> this) + .build(); return Arrays.>asList(library, debugSecretProvider); } diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m index d4dd19f997b1..9a452924d9ff 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/FLTAppCheckProvider.m @@ -20,13 +20,13 @@ - (void)configure:(FIRApp *)app if ([providerName isEqualToString:@"debug"]) { if (debugToken != nil) { // We have a debug token, so just need to stuff it in the environment and it will hook up - char *key = "FIRAAppCheckDebugToken", *value = (char *) [debugToken UTF8String]; + char *key = "FIRAAppCheckDebugToken", *value = (char *)[debugToken UTF8String]; int overwrite = 1; setenv(key, value, overwrite); } FIRAppCheckDebugProvider *provider = [[FIRAppCheckDebugProvider alloc] initWithApp:app]; - if(debugToken == nil) NSLog(@"Firebase App Check Debug Token: %@", [provider localDebugToken]); + if (debugToken == nil) NSLog(@"Firebase App Check Debug Token: %@", [provider localDebugToken]); self.delegateProvider = provider; } diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h index f3c6e313d99d..da9efde18370 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProvider.h @@ -10,7 +10,9 @@ @property id delegateProvider; -- (void)configure:(FIRApp *)app providerName:(NSString *)providerName debugToken:(NSString *)debugToken; +- (void)configure:(FIRApp *)app + providerName:(NSString *)providerName + debugToken:(NSString *)debugToken; - (id)initWithApp:(FIRApp *)app; diff --git a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h index 4bbb72d89b9c..cce9423cf384 100644 --- a/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h +++ b/packages/firebase_app_check/firebase_app_check/ios/firebase_app_check/Sources/firebase_app_check/include/FLTAppCheckProviderFactory.h @@ -7,6 +7,8 @@ @property NSMutableDictionary *_Nullable providers; -- (void)configure:(FIRApp *_Nonnull)app providerName:(NSString *_Nonnull)providerName debugToken:(NSString *)debugToken; +- (void)configure:(FIRApp *_Nonnull)app + providerName:(NSString *_Nonnull)providerName + debugToken:(NSString *)debugToken; @end diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart index ae3330966729..189a18791c8a 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/lib/src/method_channel/method_channel_firebase_app_check.dart @@ -87,14 +87,12 @@ class MethodChannelFirebaseAppCheck extends FirebaseAppCheckPlatform { // Allow value to pass for debug mode for unit testing if (defaultTargetPlatform == TargetPlatform.android || kDebugMode) 'androidProvider': getAndroidProviderString(androidProvider), - if(androidDebugToken != null) - 'androidDebugToken': androidDebugToken, + if (androidDebugToken != null) 'androidDebugToken': androidDebugToken, if (defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.macOS || kDebugMode) 'appleProvider': getAppleProviderString(appleProvider), - if(appleDebugToken != null) - 'appleDebugToken': appleDebugToken, + if (appleDebugToken != null) 'appleDebugToken': appleDebugToken, }); } on PlatformException catch (e, s) { convertPlatformException(e, s); diff --git a/packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart b/packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart index 4fc12a252dee..ccdfc8a7dff0 100644 --- a/packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart +++ b/packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart @@ -99,6 +99,8 @@ class FirebaseAppCheckWeb extends FirebaseAppCheckPlatform { WebProvider? webProvider, AndroidProvider? androidProvider, AppleProvider? appleProvider, + String? androidDebugToken, + String? appleDebugToken, }) async { // save the recaptcha type and site key for future startups if (webProvider != null) { diff --git a/packages/firebase_app_check/firebase_app_check_web/test/firebase_app_check_web_test.mocks.dart b/packages/firebase_app_check/firebase_app_check_web/test/firebase_app_check_web_test.mocks.dart index 617475de2f14..283be181d4d0 100644 --- a/packages/firebase_app_check/firebase_app_check_web/test/firebase_app_check_web_test.mocks.dart +++ b/packages/firebase_app_check/firebase_app_check_web/test/firebase_app_check_web_test.mocks.dart @@ -131,6 +131,8 @@ class MockFirebaseAppCheckWeb extends _i1.Mock _i3.WebProvider? webProvider, _i3.AndroidProvider? androidProvider, _i3.AppleProvider? appleProvider, + String? androidDebugToken, + String? appleDebugToken, }) => (super.noSuchMethod( Invocation.method( @@ -140,6 +142,8 @@ class MockFirebaseAppCheckWeb extends _i1.Mock #webProvider: webProvider, #androidProvider: androidProvider, #appleProvider: appleProvider, + #androidDebugToken: androidDebugToken, + #appleDebugToken: appleDebugToken, }, ), returnValue: _i5.Future.value(), diff --git a/packages/firebase_data_connect/firebase_data_connect/test/src/network/rest_transport_test.mocks.dart b/packages/firebase_data_connect/firebase_data_connect/test/src/network/rest_transport_test.mocks.dart index cb633caecf6f..392a0354bf9e 100644 --- a/packages/firebase_data_connect/firebase_data_connect/test/src/network/rest_transport_test.mocks.dart +++ b/packages/firebase_data_connect/firebase_data_connect/test/src/network/rest_transport_test.mocks.dart @@ -781,6 +781,8 @@ class MockFirebaseAppCheck extends _i1.Mock implements _i10.FirebaseAppCheck { _i11.WebProvider? webProvider, _i11.AndroidProvider? androidProvider = _i11.AndroidProvider.playIntegrity, _i11.AppleProvider? appleProvider = _i11.AppleProvider.deviceCheck, + String? androidDebugToken, + String? appleDebugToken, }) => (super.noSuchMethod( Invocation.method( @@ -790,6 +792,8 @@ class MockFirebaseAppCheck extends _i1.Mock implements _i10.FirebaseAppCheck { #webProvider: webProvider, #androidProvider: androidProvider, #appleProvider: appleProvider, + #androidDebugToken: androidDebugToken, + #appleDebugToken: appleDebugToken, }, ), returnValue: _i6.Future.value(),