@react-native-firebase/app-check 26.1.0 → 26.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/RNFBAppCheck.podspec +1 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/CMakeLists.txt +1 -9
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI.h +77 -104
- package/dist/module/index.js +13 -6
- package/dist/module/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/index.d.ts +1 -1
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +4 -2
- package/dist/typescript/lib/types/internal.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBAppCheck/RNFBAppCheckModule.mm +49 -4
- package/ios/RNFBAppCheck/RNFBAppCheckProvider.h +3 -0
- package/ios/RNFBAppCheck/RNFBAppCheckProvider.m +24 -0
- package/ios/RNFBAppCheck/RNFBAppCheckProviderFactory.h +3 -0
- package/ios/RNFBAppCheck/RNFBAppCheckProviderFactory.m +12 -6
- package/ios/generated/RNFBAppCheckTurboModulesJSI.h +77 -104
- package/lib/index.ts +14 -6
- package/lib/types/internal.ts +4 -2
- package/lib/version.ts +1 -1
- package/package.json +6 -6
- package/plugin/build/ios/appDelegate.js +3 -2
- package/plugin/src/ios/appDelegate.ts +3 -2
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI-generated.cpp +0 -85
- package/ios/generated/RCTAppDependencyProvider.h +0 -25
- package/ios/generated/RCTAppDependencyProvider.mm +0 -55
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +0 -18
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +0 -33
- package/ios/generated/RCTThirdPartyComponentsProvider.h +0 -16
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +0 -23
- package/ios/generated/RNFBAppCheckTurboModulesJSI-generated.cpp +0 -85
- package/ios/generated/ReactAppDependencyProvider.podspec +0 -34
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [26.3.0](https://github.com/invertase/react-native-firebase/compare/v26.2.0...v26.3.0) (2026-08-20)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **ios:** allow non-modular React includes in RNFB podspecs ([#9200](https://github.com/invertase/react-native-firebase/issues/9200)) ([dd453ff](https://github.com/invertase/react-native-firebase/commit/dd453ff17a8bd645b9d0eb56bef74df53f217f93))
|
|
11
|
+
|
|
12
|
+
## [26.2.0](https://github.com/invertase/react-native-firebase/compare/v26.1.0...v26.2.0) (2026-08-10)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **app-check, ios:** do not install debug provider before configure ([#9166](https://github.com/invertase/react-native-firebase/issues/9166)) ([b7879cd](https://github.com/invertase/react-native-firebase/commit/b7879cdde1c78e80e364ecd8966a9f0f45cd5220))
|
|
17
|
+
- codegen should be wipe-then-regen ([04bc4e4](https://github.com/invertase/react-native-firebase/commit/04bc4e4cdab9870cb366fd212b2ccb331b0289d6))
|
|
18
|
+
|
|
6
19
|
## [26.1.0](https://github.com/invertase/react-native-firebase/compare/v26.0.0...v26.1.0) (2026-08-03)
|
|
7
20
|
|
|
8
21
|
### Features
|
package/RNFBAppCheck.podspec
CHANGED
|
@@ -41,6 +41,7 @@ Pod::Spec.new do |s|
|
|
|
41
41
|
|
|
42
42
|
s.pod_target_xcconfig = {
|
|
43
43
|
'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBAppCheckTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
|
|
44
|
+
"CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => "YES",
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
s.dependency 'RNFBApp'
|
|
@@ -25,12 +25,4 @@ target_link_libraries(
|
|
|
25
25
|
reactnative
|
|
26
26
|
)
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
react_codegen_RNFBAppCheckTurboModules
|
|
30
|
-
PRIVATE
|
|
31
|
-
-DLOG_TAG=\"ReactNative\"
|
|
32
|
-
-fexceptions
|
|
33
|
-
-frtti
|
|
34
|
-
-std=c++20
|
|
35
|
-
-Wall
|
|
36
|
-
)
|
|
28
|
+
target_compile_reactnative_options(react_codegen_RNFBAppCheckTurboModules PRIVATE)
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
namespace facebook::react {
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
|
|
19
18
|
#pragma mark - NativeRNFBTurboAppCheckAppCheckTokenResult
|
|
20
19
|
|
|
21
20
|
template <typename P0>
|
|
@@ -55,120 +54,94 @@ struct NativeRNFBTurboAppCheckAppCheckTokenResultBridging {
|
|
|
55
54
|
}
|
|
56
55
|
};
|
|
57
56
|
|
|
58
|
-
class JSI_EXPORT NativeRNFBTurboAppCheckCxxSpecJSI : public TurboModule {
|
|
59
|
-
protected:
|
|
60
|
-
NativeRNFBTurboAppCheckCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
|
61
|
-
|
|
62
|
-
public:
|
|
63
|
-
virtual jsi::Value activate(jsi::Runtime &rt, jsi::String appName, jsi::String siteKeyProvider, bool isTokenAutoRefreshEnabled) = 0;
|
|
64
|
-
virtual jsi::Value configureProvider(jsi::Runtime &rt, jsi::String appName, jsi::String providerName, std::optional<jsi::String> debugToken) = 0;
|
|
65
|
-
virtual void setTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName, bool isTokenAutoRefreshEnabled) = 0;
|
|
66
|
-
virtual jsi::Value isTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName) = 0;
|
|
67
|
-
virtual jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) = 0;
|
|
68
|
-
virtual jsi::Value getLimitedUseToken(jsi::Runtime &rt, jsi::String appName) = 0;
|
|
69
|
-
virtual void addAppCheckListener(jsi::Runtime &rt, jsi::String appName) = 0;
|
|
70
|
-
virtual void removeAppCheckListener(jsi::Runtime &rt, jsi::String appName) = 0;
|
|
71
|
-
|
|
72
|
-
};
|
|
73
57
|
|
|
74
58
|
template <typename T>
|
|
75
59
|
class JSI_EXPORT NativeRNFBTurboAppCheckCxxSpec : public TurboModule {
|
|
76
60
|
public:
|
|
77
|
-
|
|
78
|
-
|
|
61
|
+
static constexpr std::string_view kModuleName = "NativeRNFBTurboAppCheck";
|
|
62
|
+
|
|
63
|
+
protected:
|
|
64
|
+
NativeRNFBTurboAppCheckCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeRNFBTurboAppCheckCxxSpec::kModuleName}, jsInvoker) {
|
|
65
|
+
methodMap_["activate"] = MethodMetadata {.argCount = 3, .invoker = __activate};
|
|
66
|
+
methodMap_["configureProvider"] = MethodMetadata {.argCount = 3, .invoker = __configureProvider};
|
|
67
|
+
methodMap_["setTokenAutoRefreshEnabled"] = MethodMetadata {.argCount = 2, .invoker = __setTokenAutoRefreshEnabled};
|
|
68
|
+
methodMap_["isTokenAutoRefreshEnabled"] = MethodMetadata {.argCount = 1, .invoker = __isTokenAutoRefreshEnabled};
|
|
69
|
+
methodMap_["getToken"] = MethodMetadata {.argCount = 2, .invoker = __getToken};
|
|
70
|
+
methodMap_["getLimitedUseToken"] = MethodMetadata {.argCount = 1, .invoker = __getLimitedUseToken};
|
|
71
|
+
methodMap_["addAppCheckListener"] = MethodMetadata {.argCount = 1, .invoker = __addAppCheckListener};
|
|
72
|
+
methodMap_["removeAppCheckListener"] = MethodMetadata {.argCount = 1, .invoker = __removeAppCheckListener};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private:
|
|
76
|
+
static jsi::Value __activate(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
77
|
+
static_assert(
|
|
78
|
+
bridging::getParameterCount(&T::activate) == 4,
|
|
79
|
+
"Expected activate(...) to have 4 parameters");
|
|
80
|
+
return bridging::callFromJs<jsi::Value>(rt, &T::activate, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
81
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
82
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
|
|
83
|
+
count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asBool());
|
|
79
84
|
}
|
|
80
85
|
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
static jsi::Value __configureProvider(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
87
|
+
static_assert(
|
|
88
|
+
bridging::getParameterCount(&T::configureProvider) == 4,
|
|
89
|
+
"Expected configureProvider(...) to have 4 parameters");
|
|
90
|
+
return bridging::callFromJs<jsi::Value>(rt, &T::configureProvider, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
91
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
92
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
|
|
93
|
+
count <= 2 || args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asString(rt)));
|
|
83
94
|
}
|
|
84
95
|
|
|
85
|
-
static
|
|
96
|
+
static jsi::Value __setTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
97
|
+
static_assert(
|
|
98
|
+
bridging::getParameterCount(&T::setTokenAutoRefreshEnabled) == 3,
|
|
99
|
+
"Expected setTokenAutoRefreshEnabled(...) to have 3 parameters");
|
|
100
|
+
bridging::callFromJs<void>(rt, &T::setTokenAutoRefreshEnabled, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
101
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
102
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());return jsi::Value::undefined();
|
|
103
|
+
}
|
|
86
104
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
105
|
+
static jsi::Value __isTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
106
|
+
static_assert(
|
|
107
|
+
bridging::getParameterCount(&T::isTokenAutoRefreshEnabled) == 2,
|
|
108
|
+
"Expected isTokenAutoRefreshEnabled(...) to have 2 parameters");
|
|
109
|
+
return bridging::callFromJs<jsi::Value>(rt, &T::isTokenAutoRefreshEnabled, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
110
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
|
|
111
|
+
}
|
|
91
112
|
|
|
113
|
+
static jsi::Value __getToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
114
|
+
static_assert(
|
|
115
|
+
bridging::getParameterCount(&T::getToken) == 3,
|
|
116
|
+
"Expected getToken(...) to have 3 parameters");
|
|
117
|
+
return bridging::callFromJs<jsi::Value>(rt, &T::getToken, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
118
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
119
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());
|
|
120
|
+
}
|
|
92
121
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
void setTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName, bool isTokenAutoRefreshEnabled) override {
|
|
118
|
-
static_assert(
|
|
119
|
-
bridging::getParameterCount(&T::setTokenAutoRefreshEnabled) == 3,
|
|
120
|
-
"Expected setTokenAutoRefreshEnabled(...) to have 3 parameters");
|
|
121
|
-
|
|
122
|
-
return bridging::callFromJs<void>(
|
|
123
|
-
rt, &T::setTokenAutoRefreshEnabled, jsInvoker_, instance_, std::move(appName), std::move(isTokenAutoRefreshEnabled));
|
|
124
|
-
}
|
|
125
|
-
jsi::Value isTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName) override {
|
|
126
|
-
static_assert(
|
|
127
|
-
bridging::getParameterCount(&T::isTokenAutoRefreshEnabled) == 2,
|
|
128
|
-
"Expected isTokenAutoRefreshEnabled(...) to have 2 parameters");
|
|
129
|
-
|
|
130
|
-
return bridging::callFromJs<jsi::Value>(
|
|
131
|
-
rt, &T::isTokenAutoRefreshEnabled, jsInvoker_, instance_, std::move(appName));
|
|
132
|
-
}
|
|
133
|
-
jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) override {
|
|
134
|
-
static_assert(
|
|
135
|
-
bridging::getParameterCount(&T::getToken) == 3,
|
|
136
|
-
"Expected getToken(...) to have 3 parameters");
|
|
137
|
-
|
|
138
|
-
return bridging::callFromJs<jsi::Value>(
|
|
139
|
-
rt, &T::getToken, jsInvoker_, instance_, std::move(appName), std::move(forceRefresh));
|
|
140
|
-
}
|
|
141
|
-
jsi::Value getLimitedUseToken(jsi::Runtime &rt, jsi::String appName) override {
|
|
142
|
-
static_assert(
|
|
143
|
-
bridging::getParameterCount(&T::getLimitedUseToken) == 2,
|
|
144
|
-
"Expected getLimitedUseToken(...) to have 2 parameters");
|
|
145
|
-
|
|
146
|
-
return bridging::callFromJs<jsi::Value>(
|
|
147
|
-
rt, &T::getLimitedUseToken, jsInvoker_, instance_, std::move(appName));
|
|
148
|
-
}
|
|
149
|
-
void addAppCheckListener(jsi::Runtime &rt, jsi::String appName) override {
|
|
150
|
-
static_assert(
|
|
151
|
-
bridging::getParameterCount(&T::addAppCheckListener) == 2,
|
|
152
|
-
"Expected addAppCheckListener(...) to have 2 parameters");
|
|
153
|
-
|
|
154
|
-
return bridging::callFromJs<void>(
|
|
155
|
-
rt, &T::addAppCheckListener, jsInvoker_, instance_, std::move(appName));
|
|
156
|
-
}
|
|
157
|
-
void removeAppCheckListener(jsi::Runtime &rt, jsi::String appName) override {
|
|
158
|
-
static_assert(
|
|
159
|
-
bridging::getParameterCount(&T::removeAppCheckListener) == 2,
|
|
160
|
-
"Expected removeAppCheckListener(...) to have 2 parameters");
|
|
161
|
-
|
|
162
|
-
return bridging::callFromJs<void>(
|
|
163
|
-
rt, &T::removeAppCheckListener, jsInvoker_, instance_, std::move(appName));
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
private:
|
|
167
|
-
friend class NativeRNFBTurboAppCheckCxxSpec;
|
|
168
|
-
T *instance_;
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
Delegate delegate_;
|
|
122
|
+
static jsi::Value __getLimitedUseToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
123
|
+
static_assert(
|
|
124
|
+
bridging::getParameterCount(&T::getLimitedUseToken) == 2,
|
|
125
|
+
"Expected getLimitedUseToken(...) to have 2 parameters");
|
|
126
|
+
return bridging::callFromJs<jsi::Value>(rt, &T::getLimitedUseToken, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
127
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static jsi::Value __addAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
131
|
+
static_assert(
|
|
132
|
+
bridging::getParameterCount(&T::addAppCheckListener) == 2,
|
|
133
|
+
"Expected addAppCheckListener(...) to have 2 parameters");
|
|
134
|
+
bridging::callFromJs<void>(rt, &T::addAppCheckListener, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
135
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
static jsi::Value __removeAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
139
|
+
static_assert(
|
|
140
|
+
bridging::getParameterCount(&T::removeAppCheckListener) == 2,
|
|
141
|
+
"Expected removeAppCheckListener(...) to have 2 parameters");
|
|
142
|
+
bridging::callFromJs<void>(rt, &T::removeAppCheckListener, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
|
|
143
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
|
|
144
|
+
}
|
|
172
145
|
};
|
|
173
146
|
|
|
174
147
|
} // namespace facebook::react
|
package/dist/module/index.js
CHANGED
|
@@ -100,24 +100,31 @@ class FirebaseAppCheckModule extends FirebaseModule {
|
|
|
100
100
|
if (!isBoolean(options.isTokenAutoRefreshEnabled)) {
|
|
101
101
|
options.isTokenAutoRefreshEnabled = true;
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
const isTokenAutoRefreshEnabled = options.isTokenAutoRefreshEnabled;
|
|
104
104
|
if (!hasProviderOptions(options.provider)) {
|
|
105
105
|
throw new Error('Invalid configuration: no provider or no provider options defined.');
|
|
106
106
|
}
|
|
107
107
|
const provider = options.provider;
|
|
108
|
+
|
|
109
|
+
// AppCheck-AD-4: attach the real provider before enabling auto-refresh so early
|
|
110
|
+
// refresh does not run while the native facade is still pending.
|
|
111
|
+
let configurePromise;
|
|
108
112
|
if (Platform.OS === 'android') {
|
|
109
113
|
if (!isString(provider.providerOptions?.android?.provider)) {
|
|
110
114
|
throw new Error('Invalid configuration: no android provider configured while on android platform.');
|
|
111
115
|
}
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
116
|
+
configurePromise = this.native.configureProvider(provider.providerOptions.android.provider, provider.providerOptions.android.debugToken);
|
|
117
|
+
} else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
|
|
115
118
|
if (!isString(provider.providerOptions?.apple?.provider)) {
|
|
116
119
|
throw new Error('Invalid configuration: no apple provider configured while on apple platform.');
|
|
117
120
|
}
|
|
118
|
-
|
|
121
|
+
configurePromise = this.native.configureProvider(provider.providerOptions.apple.provider, provider.providerOptions.apple.debugToken);
|
|
122
|
+
} else {
|
|
123
|
+
throw new Error('Unsupported platform: ' + Platform.OS);
|
|
119
124
|
}
|
|
120
|
-
|
|
125
|
+
return Promise.resolve(configurePromise).then(() => {
|
|
126
|
+
this.native.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);
|
|
127
|
+
});
|
|
121
128
|
}
|
|
122
129
|
activate(siteKeyOrProvider, isTokenAutoRefreshEnabled) {
|
|
123
130
|
if (isOther) {
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","Platform","setReactNativeModule","fallBackModule","version","ReactNativeFirebaseAppCheckProvider","nativeModuleName","VALID_APPLE_PROVIDERS","VALID_ANDROID_PROVIDERS","hasProviderOptions","provider","undefined","providerOptions","validateProviderName","options","OS","name","android","includes","Error","join","apple","FirebaseAppCheckModule","constructor","app","config","customUrlOrRegion","emitter","addListener","eventNameForApp","event","emit","_listenerCount","getIsTokenRefreshEnabledDefault","isTokenAutoRefreshEnabled","newReactNativeFirebaseAppCheckProvider","initializeAppCheck","native","tokenRefresh","firebaseJson","app_check_token_auto_refresh","dataCollection","app_data_collection_default_enabled","
|
|
1
|
+
{"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","Platform","setReactNativeModule","fallBackModule","version","ReactNativeFirebaseAppCheckProvider","nativeModuleName","VALID_APPLE_PROVIDERS","VALID_ANDROID_PROVIDERS","hasProviderOptions","provider","undefined","providerOptions","validateProviderName","options","OS","name","android","includes","Error","join","apple","FirebaseAppCheckModule","constructor","app","config","customUrlOrRegion","emitter","addListener","eventNameForApp","event","emit","_listenerCount","getIsTokenRefreshEnabledDefault","isTokenAutoRefreshEnabled","newReactNativeFirebaseAppCheckProvider","initializeAppCheck","native","tokenRefresh","firebaseJson","app_check_token_auto_refresh","dataCollection","app_data_collection_default_enabled","configurePromise","configureProvider","debugToken","Promise","resolve","then","setTokenAutoRefreshEnabled","activate","siteKeyOrProvider","rnfbProvider","configure","web","siteKey","getToken","forceRefresh","getLimitedUseToken","onTokenChanged","onNextOrObserver","_onError","_onCompletion","console","warn","nextFn","subscription","addAppCheckListener","remove","removeAppCheckListener","namespace","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","CustomProvider","getModularAppCheck","appCheck","appCheckInstance","isAutoRefreshEnabled","onError","onCompletion"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FirebaseApp } from '@react-native-firebase/app';
|
|
2
2
|
import './types/internal';
|
|
3
3
|
import type { AppCheck, AppCheckOptions, AppCheckTokenResult, PartialObserver, Unsubscribe } from './types/appcheck';
|
|
4
|
-
export declare const SDK_VERSION = "26.
|
|
4
|
+
export declare const SDK_VERSION = "26.3.0";
|
|
5
5
|
export { CustomProvider, ReactNativeFirebaseAppCheckProvider } from './providers';
|
|
6
6
|
/**
|
|
7
7
|
* Initializes App Check for the given Firebase app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAEf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAEf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAoP1B,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAC;AAMlF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAQzF;AAED,wBAAgB,QAAQ,CACtB,gBAAgB,EAAE,QAAQ,EAC1B,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE3F;AAED,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,QAAQ,EAC1B,oBAAoB,EAAE,OAAO,GAC5B,IAAI,CAEN;AAED,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAC7C,WAAW,CAAC;AAEf,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,EAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;AAiBf,mBAAmB,kBAAkB,CAAC"}
|
|
@@ -22,8 +22,10 @@ export type AppCheckInternal = AppCheck & {
|
|
|
22
22
|
initializeAppCheck(options: AppCheckOptions): Promise<void>;
|
|
23
23
|
/**
|
|
24
24
|
* Activate App Check
|
|
25
|
-
* On iOS App Check
|
|
26
|
-
* the specific value (if configured) in firebase.json
|
|
25
|
+
* On iOS calling this activates App Check with the DeviceCheck provider, using the token auto refresh default or
|
|
26
|
+
* the specific value (if configured) in firebase.json. Before `activate` or `initializeAppCheck` is called, the
|
|
27
|
+
* native App Check provider is pending and `getToken` / `getLimitedUseToken` fail closed with
|
|
28
|
+
* `appCheck/provider-not-ready`.
|
|
27
29
|
* On Android if you call this it will install the PlayIntegrity provider in release builds, the Debug provider if debuggable.
|
|
28
30
|
* On both platforms you may use this method to alter the token refresh setting after startup.
|
|
29
31
|
* On iOS if you want to set a specific AppCheckProviderFactory (for instance to FIRAppCheckDebugProviderFactory or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yCAAyC,EACzC,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AAExE,KAAK,sBAAsB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,qDAAqD;IACrD,GAAG,EAAE,WAAW,CAAC;IAEjB;;OAEG;IACH,sCAAsC,IAAI,mCAAmC,CAAC;IAE9E;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yCAAyC,EACzC,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AAExE,KAAK,sBAAsB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,qDAAqD;IACrD,GAAG,EAAE,WAAW,CAAC;IAEjB;;OAEG;IACH,sCAAsC,IAAI,mCAAmC,CAAC;IAE9E;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CACN,iBAAiB,EAAE,MAAM,GAAG,gBAAgB,EAC5C,yBAAyB,CAAC,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,0BAA0B,CAAC,yBAAyB,EAAE,OAAO,GAAG,IAAI,CAAC;IAErE;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,MAAM,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,IAAI,EACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;IAEf;;OAEG;IACH,cAAc,CACZ,gBAAgB,EACZ,eAAe,CAAC,mBAAmB,CAAC,GACpC,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC,EAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,mCAAmC,GACnC,yCAAyC,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD,mBAAmB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,sBAAsB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,OAAO,QAAQ,+DAA+D,CAAC;IAC7E,UAAU,gCAAgC;QACxC,uBAAuB,EAAE,kBAAkB,CAAC;KAC7C;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "26.
|
|
1
|
+
export declare const version = "26.3.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -124,21 +124,62 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppCheck)
|
|
|
124
124
|
resolve([NSNumber numberWithBool:isTokenAutoRefreshEnabled]);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
// AppCheck-AD-8: map pending fail-closed to provider-not-ready (not token-error).
|
|
128
|
+
// Walk NSUnderlyingErrorKey because FIRAppCheck wraps non-SDK errors via
|
|
129
|
+
// publicDomainErrorWithError: and drops top-level userInfo[@"code"].
|
|
130
|
+
// Locked message: kRNFBAppCheckProviderNotReadyMessage (RNFBAppCheckProvider.h).
|
|
131
|
+
static NSString *RNFBAppCheckRejectCodeForError(NSError *error) {
|
|
132
|
+
NSError *current = error;
|
|
133
|
+
while (current != nil) {
|
|
134
|
+
id code = current.userInfo[@"code"];
|
|
135
|
+
if ([code isKindOfClass:[NSString class]] && [code isEqualToString:@"provider-not-ready"]) {
|
|
136
|
+
return @"provider-not-ready";
|
|
137
|
+
}
|
|
138
|
+
current = current.userInfo[NSUnderlyingErrorKey];
|
|
139
|
+
if (![current isKindOfClass:[NSError class]]) {
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return @"token-error";
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// AppCheck-AD-8 durable path: reject before FIRAppCheck token APIs when the
|
|
147
|
+
// factory-held facade still has a nil delegateProvider (pending / not configured).
|
|
148
|
+
static BOOL RNFBAppCheckRejectIfProviderNotReady(FIRApp *firebaseApp,
|
|
149
|
+
RCTPromiseRejectBlock reject) {
|
|
150
|
+
RNFBAppCheckProviderFactory *factory = [RNFBAppCheckModule sharedInstance].providerFactory;
|
|
151
|
+
RNFBAppCheckProvider *provider = [factory providerForApp:firebaseApp];
|
|
152
|
+
if (provider != nil && provider.delegateProvider != nil) {
|
|
153
|
+
return NO;
|
|
154
|
+
}
|
|
155
|
+
DLog(@"RNFBAppCheck - provider not ready for app %@ (delegateProvider nil)", firebaseApp.name);
|
|
156
|
+
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
|
157
|
+
userInfo:(NSMutableDictionary *)@{
|
|
158
|
+
@"code" : @"provider-not-ready",
|
|
159
|
+
@"message" : kRNFBAppCheckProviderNotReadyMessage,
|
|
160
|
+
}];
|
|
161
|
+
return YES;
|
|
162
|
+
}
|
|
163
|
+
|
|
127
164
|
- (void)getToken:(NSString *)appName
|
|
128
165
|
forceRefresh:(BOOL)forceRefresh
|
|
129
166
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
130
167
|
reject:(RCTPromiseRejectBlock)reject {
|
|
131
168
|
FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
|
|
132
|
-
FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
|
|
133
169
|
DLog(@"appName %@", firebaseApp.name);
|
|
170
|
+
if (RNFBAppCheckRejectIfProviderNotReady(firebaseApp, reject)) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
|
|
134
174
|
[appCheck
|
|
135
175
|
tokenForcingRefresh:forceRefresh
|
|
136
176
|
completion:^(FIRAppCheckToken *_Nullable token, NSError *_Nullable error) {
|
|
137
177
|
if (error != nil) {
|
|
138
178
|
DLog(@"RNFBAppCheck - getToken - Unable to retrieve App Check token: %@", error);
|
|
179
|
+
NSString *code = RNFBAppCheckRejectCodeForError(error);
|
|
139
180
|
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
|
140
181
|
userInfo:(NSMutableDictionary *)@{
|
|
141
|
-
@"code" :
|
|
182
|
+
@"code" : code,
|
|
142
183
|
@"message" : [error localizedDescription],
|
|
143
184
|
}];
|
|
144
185
|
return;
|
|
@@ -163,15 +204,19 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppCheck)
|
|
|
163
204
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
164
205
|
reject:(RCTPromiseRejectBlock)reject {
|
|
165
206
|
FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
|
|
166
|
-
FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
|
|
167
207
|
DLog(@"appName %@", firebaseApp.name);
|
|
208
|
+
if (RNFBAppCheckRejectIfProviderNotReady(firebaseApp, reject)) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
|
|
168
212
|
[appCheck limitedUseTokenWithCompletion:^(FIRAppCheckToken *_Nullable token,
|
|
169
213
|
NSError *_Nullable error) {
|
|
170
214
|
if (error != nil) {
|
|
171
215
|
DLog(@"RNFBAppCheck - getLimitedUseToken - Unable to retrieve App Check token: %@", error);
|
|
216
|
+
NSString *code = RNFBAppCheckRejectCodeForError(error);
|
|
172
217
|
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
|
173
218
|
userInfo:(NSMutableDictionary *)@{
|
|
174
|
-
@"code" :
|
|
219
|
+
@"code" : code,
|
|
175
220
|
@"message" : [error localizedDescription],
|
|
176
221
|
}];
|
|
177
222
|
return;
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
@import FirebaseAppCheck;
|
|
26
26
|
#endif
|
|
27
27
|
|
|
28
|
+
// AppCheck-AD-8 locked message (Provider pending error + Module early reject).
|
|
29
|
+
FOUNDATION_EXPORT NSString *const kRNFBAppCheckProviderNotReadyMessage;
|
|
30
|
+
|
|
28
31
|
@interface RNFBAppCheckProvider : NSObject <FIRAppCheckProvider>
|
|
29
32
|
|
|
30
33
|
@property FIRApp *app;
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
#import "RNFBAppCheckProvider.h"
|
|
18
18
|
#import "RNFBApp/RNFBSharedUtils.h"
|
|
19
19
|
|
|
20
|
+
NSString *const kRNFBAppCheckProviderNotReadyMessage =
|
|
21
|
+
@"App Check provider is not ready. Call initializeAppCheck before requesting tokens.";
|
|
22
|
+
|
|
20
23
|
@implementation RNFBAppCheckProvider
|
|
21
24
|
|
|
22
25
|
- (id)initWithApp:app {
|
|
@@ -85,14 +88,35 @@
|
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
90
|
|
|
91
|
+
// AppCheck-AD-8: fail closed while pending — no network / no exchangeDebugToken.
|
|
92
|
+
static NSError *RNFBAppCheckProviderNotReadyError(void) {
|
|
93
|
+
return [NSError errorWithDomain:@"RNFBErrorDomain"
|
|
94
|
+
code:666
|
|
95
|
+
userInfo:@{
|
|
96
|
+
@"code" : @"provider-not-ready",
|
|
97
|
+
@"message" : kRNFBAppCheckProviderNotReadyMessage,
|
|
98
|
+
NSLocalizedDescriptionKey : kRNFBAppCheckProviderNotReadyMessage,
|
|
99
|
+
}];
|
|
100
|
+
}
|
|
101
|
+
|
|
88
102
|
- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken *_Nullable,
|
|
89
103
|
NSError *_Nullable))handler {
|
|
104
|
+
if (self.delegateProvider == nil) {
|
|
105
|
+
DLog(@"getTokenWithCompletion: provider not ready (nil delegateProvider)");
|
|
106
|
+
handler(nil, RNFBAppCheckProviderNotReadyError());
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
90
109
|
DLog(@"proxying getTokenWithCompletion to delegateProvider...");
|
|
91
110
|
[self.delegateProvider getTokenWithCompletion:handler];
|
|
92
111
|
}
|
|
93
112
|
|
|
94
113
|
- (void)getLimitedUseTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken *_Nullable,
|
|
95
114
|
NSError *_Nullable))handler {
|
|
115
|
+
if (self.delegateProvider == nil) {
|
|
116
|
+
DLog(@"getLimitedUseTokenWithCompletion: provider not ready (nil delegateProvider)");
|
|
117
|
+
handler(nil, RNFBAppCheckProviderNotReadyError());
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
96
120
|
DLog(@"proxying getLimitedUseTokenWithCompletion to delegateProvider...");
|
|
97
121
|
[self.delegateProvider getLimitedUseTokenWithCompletion:handler];
|
|
98
122
|
}
|
|
@@ -25,4 +25,7 @@
|
|
|
25
25
|
providerName:(NSString *_Nonnull)providerName
|
|
26
26
|
debugToken:(NSString *_Nullable)debugToken;
|
|
27
27
|
|
|
28
|
+
/** Returns the factory-held facade for `app`, or nil if none exists yet. */
|
|
29
|
+
- (RNFBAppCheckProvider *_Nullable)providerForApp:(FIRApp *_Nonnull)app;
|
|
30
|
+
|
|
28
31
|
@end
|
|
@@ -23,19 +23,18 @@
|
|
|
23
23
|
- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
|
|
24
24
|
DLog(@"appName %@", app.name);
|
|
25
25
|
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
// pre-configure
|
|
26
|
+
// Firebase may call this during FirebaseApp.configure() before JS runs
|
|
27
|
+
// configureProvider. Install a pending facade only (AppCheck-AD-1).
|
|
29
28
|
if (self.providers == nil) {
|
|
30
29
|
DLog(@"providers dictionary initializing for app %@", app.name);
|
|
31
30
|
self.providers = [NSMutableDictionary new];
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
if (self.providers[app.name] == nil) {
|
|
35
|
-
|
|
34
|
+
// AppCheck-AD-1 / AD-2: facade only until configureProvider; no real provider
|
|
35
|
+
// (debug/App Attest/etc.) before JS/native configure. Same path DEBUG and release.
|
|
36
|
+
DLog(@"provider initializing (pending, no delegate) for app %@", app.name);
|
|
36
37
|
self.providers[app.name] = [RNFBAppCheckProvider new];
|
|
37
|
-
RNFBAppCheckProvider *provider = self.providers[app.name];
|
|
38
|
-
[provider configure:app providerName:@"debug" debugToken:nil];
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
return self.providers[app.name];
|
|
@@ -58,4 +57,11 @@
|
|
|
58
57
|
[provider configure:app providerName:providerName debugToken:debugToken];
|
|
59
58
|
}
|
|
60
59
|
|
|
60
|
+
- (RNFBAppCheckProvider *)providerForApp:(FIRApp *)app {
|
|
61
|
+
if (app == nil || self.providers == nil) {
|
|
62
|
+
return nil;
|
|
63
|
+
}
|
|
64
|
+
return self.providers[app.name];
|
|
65
|
+
}
|
|
66
|
+
|
|
61
67
|
@end
|