@react-native-firebase/auth 25.0.1 → 26.0.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/RNFBAuth.podspec +14 -6
  3. package/android/build.gradle +23 -0
  4. package/android/src/main/java/io/invertase/firebase/auth/{ReactNativeFirebaseAuthModule.java → NativeRNFBTurboAuth.java} +122 -102
  5. package/android/src/main/java/io/invertase/firebase/auth/ReactNativeFirebaseAuthPackage.java +1 -1
  6. package/android/src/main/java/io/invertase/firebase/auth/ReactNativeFirebaseAuthSyncException.java +35 -0
  7. package/android/src/main/java/io/invertase/firebase/auth/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAuthSpec.java +308 -0
  8. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/CMakeLists.txt +36 -0
  9. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/RNFBAuthTurboModules-generated.cpp +392 -0
  10. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/RNFBAuthTurboModules.h +31 -0
  11. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/react/renderer/components/RNFBAuthTurboModules/RNFBAuthTurboModulesJSI-generated.cpp +538 -0
  12. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/react/renderer/components/RNFBAuthTurboModules/RNFBAuthTurboModulesJSI.h +611 -0
  13. package/app.plugin.js +1 -1
  14. package/dist/module/ActionCodeURL.js.map +1 -1
  15. package/dist/module/ConfirmationResult.js.map +1 -1
  16. package/dist/module/MultiFactorResolver.js.map +1 -1
  17. package/dist/module/PhoneAuthListener.js +3 -4
  18. package/dist/module/PhoneAuthListener.js.map +1 -1
  19. package/dist/module/TotpMultiFactorGenerator.js +1 -1
  20. package/dist/module/TotpMultiFactorGenerator.js.map +1 -1
  21. package/dist/module/TotpSecret.js +15 -9
  22. package/dist/module/TotpSecret.js.map +1 -1
  23. package/dist/module/User.js +1 -1
  24. package/dist/module/User.js.map +1 -1
  25. package/dist/module/credentials/EmailAuthCredential.js.map +1 -1
  26. package/dist/module/credentials/OAuthCredential.js.map +1 -1
  27. package/dist/module/getMultiFactorResolver.js +2 -2
  28. package/dist/module/getMultiFactorResolver.js.map +1 -1
  29. package/dist/module/index.js +1221 -6
  30. package/dist/module/index.js.map +1 -1
  31. package/dist/module/internal/syncNativeError.js +75 -0
  32. package/dist/module/internal/syncNativeError.js.map +1 -0
  33. package/dist/module/multiFactor.js +5 -3
  34. package/dist/module/multiFactor.js.map +1 -1
  35. package/dist/module/providers/OIDCAuthProvider.js.map +1 -1
  36. package/dist/module/providers/PhoneAuthProvider.js +4 -4
  37. package/dist/module/providers/PhoneAuthProvider.js.map +1 -1
  38. package/dist/module/types/auth.js.map +1 -1
  39. package/dist/module/version.js +1 -1
  40. package/dist/module/web/RNFBAuthModule.js +13 -7
  41. package/dist/module/web/RNFBAuthModule.js.map +1 -1
  42. package/dist/typescript/lib/ActionCodeURL.d.ts.map +1 -1
  43. package/dist/typescript/lib/ConfirmationResult.d.ts +2 -2
  44. package/dist/typescript/lib/ConfirmationResult.d.ts.map +1 -1
  45. package/dist/typescript/lib/MultiFactorResolver.d.ts +6 -6
  46. package/dist/typescript/lib/MultiFactorResolver.d.ts.map +1 -1
  47. package/dist/typescript/lib/PhoneAuthListener.d.ts +1 -4
  48. package/dist/typescript/lib/PhoneAuthListener.d.ts.map +1 -1
  49. package/dist/typescript/lib/TotpSecret.d.ts +2 -4
  50. package/dist/typescript/lib/TotpSecret.d.ts.map +1 -1
  51. package/dist/typescript/lib/User.d.ts +13 -13
  52. package/dist/typescript/lib/User.d.ts.map +1 -1
  53. package/dist/typescript/lib/credentials/EmailAuthCredential.d.ts.map +1 -1
  54. package/dist/typescript/lib/credentials/OAuthCredential.d.ts.map +1 -1
  55. package/dist/typescript/lib/getMultiFactorResolver.d.ts +5 -5
  56. package/dist/typescript/lib/getMultiFactorResolver.d.ts.map +1 -1
  57. package/dist/typescript/lib/index.d.ts +377 -4
  58. package/dist/typescript/lib/index.d.ts.map +1 -1
  59. package/dist/typescript/lib/internal/syncNativeError.d.ts +6 -0
  60. package/dist/typescript/lib/internal/syncNativeError.d.ts.map +1 -0
  61. package/dist/typescript/lib/multiFactor.d.ts +9 -9
  62. package/dist/typescript/lib/multiFactor.d.ts.map +1 -1
  63. package/dist/typescript/lib/providers/OIDCAuthProvider.d.ts.map +1 -1
  64. package/dist/typescript/lib/providers/PhoneAuthProvider.d.ts.map +1 -1
  65. package/dist/typescript/lib/types/auth.d.ts +13 -0
  66. package/dist/typescript/lib/types/auth.d.ts.map +1 -1
  67. package/dist/typescript/lib/types/internal.d.ts +44 -47
  68. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  69. package/dist/typescript/lib/version.d.ts +1 -1
  70. package/dist/typescript/lib/web/RNFBAuthModule.d.ts +4 -4
  71. package/dist/typescript/lib/web/RNFBAuthModule.d.ts.map +1 -1
  72. package/ios/RNFBAuth/RNFBAuthModule.h +2 -2
  73. package/ios/RNFBAuth/{RNFBAuthModule.m → RNFBAuthModule.mm} +408 -297
  74. package/ios/RNFBAuth.xcodeproj/project.pbxproj +8 -8
  75. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  76. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  77. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  78. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  79. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  80. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  81. package/ios/generated/RNFBAuthTurboModules/RNFBAuthTurboModules-generated.mm +459 -0
  82. package/ios/generated/RNFBAuthTurboModules/RNFBAuthTurboModules.h +341 -0
  83. package/ios/generated/RNFBAuthTurboModulesJSI-generated.cpp +538 -0
  84. package/ios/generated/RNFBAuthTurboModulesJSI.h +611 -0
  85. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  86. package/lib/ActionCodeURL.ts +3 -9
  87. package/lib/ConfirmationResult.ts +3 -6
  88. package/lib/MultiFactorResolver.ts +8 -8
  89. package/lib/PhoneAuthListener.ts +6 -10
  90. package/lib/TotpMultiFactorGenerator.ts +1 -1
  91. package/lib/TotpSecret.ts +22 -9
  92. package/lib/User.ts +38 -51
  93. package/lib/credentials/EmailAuthCredential.ts +1 -5
  94. package/lib/credentials/OAuthCredential.ts +4 -1
  95. package/lib/getMultiFactorResolver.ts +9 -9
  96. package/lib/index.ts +1836 -6
  97. package/lib/internal/syncNativeError.ts +89 -0
  98. package/lib/multiFactor.ts +24 -18
  99. package/lib/providers/OIDCAuthProvider.ts +1 -5
  100. package/lib/providers/PhoneAuthProvider.ts +9 -22
  101. package/lib/types/auth.ts +15 -0
  102. package/lib/types/internal.ts +68 -73
  103. package/lib/version.ts +1 -1
  104. package/lib/web/RNFBAuthModule.ts +13 -10
  105. package/package.json +30 -4
  106. package/plugin/build/app.plugin.d.ts +2 -0
  107. package/plugin/build/app.plugin.js +6 -0
  108. package/plugin/src/app.plugin.ts +3 -0
  109. package/plugin/tsconfig.tsbuildinfo +1 -1
  110. package/react-native.config.js +9 -0
  111. package/specs/NativeRNFBTurboAuth.ts +143 -0
  112. package/typedoc.json +0 -1
  113. package/dist/module/modular.js +0 -793
  114. package/dist/module/modular.js.map +0 -1
  115. package/dist/module/namespaced.js +0 -522
  116. package/dist/module/namespaced.js.map +0 -1
  117. package/dist/module/types/namespaced.js +0 -62
  118. package/dist/module/types/namespaced.js.map +0 -1
  119. package/dist/typescript/lib/modular.d.ts +0 -370
  120. package/dist/typescript/lib/modular.d.ts.map +0 -1
  121. package/dist/typescript/lib/namespaced.d.ts +0 -12
  122. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  123. package/dist/typescript/lib/types/namespaced.d.ts +0 -2185
  124. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  125. package/lib/modular.ts +0 -1172
  126. package/lib/namespaced.ts +0 -846
  127. package/lib/types/namespaced.ts +0 -2350
@@ -22,6 +22,13 @@
22
22
  #import "RNFBApp/RNFBAppModule.h"
23
23
  #import "RNFBApp/RNFBSharedUtils.h"
24
24
  #import "RNFBAuthModule.h"
25
+ #import "RNFBAuthTurboModules.h"
26
+
27
+ static void RNFBAuthThrowSyncErrorWithCode(NSString *code, NSString *message) {
28
+ @throw [NSException exceptionWithName:code
29
+ reason:message
30
+ userInfo:@{@"code" : code, @"message" : message}];
31
+ }
25
32
 
26
33
  static NSString *const keyIOS = @"iOS";
27
34
  static NSString *const keyUrl = @"url";
@@ -65,10 +72,15 @@ static __strong NSMutableDictionary<NSString *, FIRTOTPSecret *> *cachedTotpSecr
65
72
  #pragma mark -
66
73
  #pragma mark Module Setup
67
74
 
68
- RCT_EXPORT_MODULE();
75
+ RCT_EXPORT_MODULE(NativeRNFBTurboAuth);
69
76
 
70
77
  + (BOOL)requiresMainQueueSetup {
71
- return YES;
78
+ return NO;
79
+ }
80
+
81
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
82
+ (const facebook::react::ObjCTurboModule::InitParams &)params {
83
+ return std::make_shared<facebook::react::NativeRNFBTurboAuthSpecJSI>(params);
72
84
  }
73
85
 
74
86
  - (id)init {
@@ -119,7 +131,9 @@ RCT_EXPORT_MODULE();
119
131
  #pragma mark -
120
132
  #pragma mark Firebase Auth Methods
121
133
 
122
- RCT_EXPORT_METHOD(addAuthStateListener : (FIRApp *)firebaseApp) {
134
+ - (void)addAuthStateListener:(NSString *)appName {
135
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
136
+
123
137
  if (![authStateHandlers valueForKey:firebaseApp.name]) {
124
138
  FIRAuthStateDidChangeListenerHandle newListenerHandle = [[FIRAuth authWithApp:firebaseApp]
125
139
  addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
@@ -135,7 +149,9 @@ RCT_EXPORT_METHOD(addAuthStateListener : (FIRApp *)firebaseApp) {
135
149
  }
136
150
  }
137
151
 
138
- RCT_EXPORT_METHOD(removeAuthStateListener : (FIRApp *)firebaseApp) {
152
+ - (void)removeAuthStateListener:(NSString *)appName {
153
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
154
+
139
155
  if ([authStateHandlers valueForKey:firebaseApp.name]) {
140
156
  [[FIRAuth authWithApp:firebaseApp]
141
157
  removeAuthStateDidChangeListener:[authStateHandlers valueForKey:firebaseApp.name]];
@@ -143,7 +159,9 @@ RCT_EXPORT_METHOD(removeAuthStateListener : (FIRApp *)firebaseApp) {
143
159
  }
144
160
  }
145
161
 
146
- RCT_EXPORT_METHOD(addIdTokenListener : (FIRApp *)firebaseApp) {
162
+ - (void)addIdTokenListener:(NSString *)appName {
163
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
164
+
147
165
  if (![idTokenHandlers valueForKey:firebaseApp.name]) {
148
166
  FIRIDTokenDidChangeListenerHandle newListenerHandle = [[FIRAuth authWithApp:firebaseApp]
149
167
  addIDTokenDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
@@ -161,7 +179,9 @@ RCT_EXPORT_METHOD(addIdTokenListener : (FIRApp *)firebaseApp) {
161
179
  }
162
180
  }
163
181
 
164
- RCT_EXPORT_METHOD(removeIdTokenListener : (FIRApp *)firebaseApp) {
182
+ - (void)removeIdTokenListener:(NSString *)appName {
183
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
184
+
165
185
  if ([idTokenHandlers valueForKey:firebaseApp.name]) {
166
186
  [[FIRAuth authWithApp:firebaseApp]
167
187
  removeIDTokenDidChangeListener:[idTokenHandlers valueForKey:firebaseApp.name]];
@@ -169,7 +189,9 @@ RCT_EXPORT_METHOD(removeIdTokenListener : (FIRApp *)firebaseApp) {
169
189
  }
170
190
  }
171
191
 
172
- RCT_EXPORT_METHOD(configureAuthDomain : (FIRApp *)firebaseApp) {
192
+ - (void)configureAuthDomain:(NSString *)appName {
193
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
194
+
173
195
  NSString *authDomain = [RNFBAppModule getCustomDomain:firebaseApp.name];
174
196
  DLog(@"RNFBAuth app: %@ customAuthDomain: %@", firebaseApp.name, authDomain);
175
197
  if (authDomain != nil) {
@@ -177,22 +199,45 @@ RCT_EXPORT_METHOD(configureAuthDomain : (FIRApp *)firebaseApp) {
177
199
  }
178
200
  }
179
201
 
180
- RCT_EXPORT_METHOD(getCustomAuthDomain
181
- : (FIRApp *)firebaseApp
182
- : (RCTPromiseResolveBlock)resolve
183
- : (RCTPromiseRejectBlock)reject) {
202
+ - (void)getCustomAuthDomain:(NSString *)appName
203
+ resolve:(RCTPromiseResolveBlock)resolve
204
+ reject:(RCTPromiseRejectBlock)reject {
205
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
206
+
184
207
  resolve([FIRAuth authWithApp:firebaseApp].customAuthDomain);
185
208
  }
186
209
 
187
- RCT_EXPORT_METHOD(setAppVerificationDisabledForTesting : (FIRApp *)firebaseApp : (BOOL)disabled) {
210
+ - (void)setAppVerificationDisabledForTesting:(NSString *)appName
211
+ disabled:(BOOL)disabled
212
+ resolve:(RCTPromiseResolveBlock)resolve
213
+ reject:(RCTPromiseRejectBlock)reject {
214
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
215
+
188
216
  [FIRAuth authWithApp:firebaseApp].settings.appVerificationDisabledForTesting = disabled;
217
+ resolve([NSNull null]);
189
218
  }
190
219
 
191
- RCT_EXPORT_METHOD(useUserAccessGroup
192
- : (FIRApp *)firebaseApp
193
- : (NSString *)userAccessGroup
194
- : (RCTPromiseResolveBlock)resolve
195
- : (RCTPromiseRejectBlock)reject) {
220
+ - (void)forceRecaptchaFlowForTesting:(NSString *)appName
221
+ forceRecaptchaFlow:(BOOL)forceRecaptchaFlow
222
+ resolve:(RCTPromiseResolveBlock)resolve
223
+ reject:(RCTPromiseRejectBlock)reject {
224
+ resolve([NSNull null]);
225
+ }
226
+
227
+ - (void)setAutoRetrievedSmsCodeForPhoneNumber:(NSString *)appName
228
+ phoneNumber:(NSString *)phoneNumber
229
+ smsCode:(NSString *)smsCode
230
+ resolve:(RCTPromiseResolveBlock)resolve
231
+ reject:(RCTPromiseRejectBlock)reject {
232
+ resolve([NSNull null]);
233
+ }
234
+
235
+ - (void)useUserAccessGroup:(NSString *)appName
236
+ userAccessGroup:(NSString *)userAccessGroup
237
+ resolve:(RCTPromiseResolveBlock)resolve
238
+ reject:(RCTPromiseRejectBlock)reject {
239
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
240
+
196
241
  NSError *error;
197
242
  [[FIRAuth authWithApp:firebaseApp] useUserAccessGroup:userAccessGroup error:&error];
198
243
 
@@ -204,10 +249,11 @@ RCT_EXPORT_METHOD(useUserAccessGroup
204
249
  return;
205
250
  }
206
251
 
207
- RCT_EXPORT_METHOD(signOut
208
- : (FIRApp *)firebaseApp
209
- : (RCTPromiseResolveBlock)resolve
210
- : (RCTPromiseRejectBlock)reject) {
252
+ - (void)signOut:(NSString *)appName
253
+ resolve:(RCTPromiseResolveBlock)resolve
254
+ reject:(RCTPromiseRejectBlock)reject {
255
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
256
+
211
257
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
212
258
 
213
259
  if (user) {
@@ -224,10 +270,11 @@ RCT_EXPORT_METHOD(signOut
224
270
  [self promiseNoUser:resolve rejecter:reject isError:YES];
225
271
  }
226
272
 
227
- RCT_EXPORT_METHOD(signInAnonymously
228
- : (FIRApp *)firebaseApp
229
- : (RCTPromiseResolveBlock)resolve
230
- : (RCTPromiseRejectBlock)reject) {
273
+ - (void)signInAnonymously:(NSString *)appName
274
+ resolve:(RCTPromiseResolveBlock)resolve
275
+ reject:(RCTPromiseRejectBlock)reject {
276
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
277
+
231
278
  [[FIRAuth authWithApp:firebaseApp]
232
279
  signInAnonymouslyWithCompletion:^(FIRAuthDataResult *authResult, NSError *error) {
233
280
  if (error) {
@@ -238,12 +285,13 @@ RCT_EXPORT_METHOD(signInAnonymously
238
285
  }];
239
286
  }
240
287
 
241
- RCT_EXPORT_METHOD(signInWithEmailAndPassword
242
- : (FIRApp *)firebaseApp
243
- : (NSString *)email
244
- : (NSString *)password
245
- : (RCTPromiseResolveBlock)resolve
246
- : (RCTPromiseRejectBlock)reject) {
288
+ - (void)signInWithEmailAndPassword:(NSString *)appName
289
+ email:(NSString *)email
290
+ password:(NSString *)password
291
+ resolve:(RCTPromiseResolveBlock)resolve
292
+ reject:(RCTPromiseRejectBlock)reject {
293
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
294
+
247
295
  [[FIRAuth authWithApp:firebaseApp]
248
296
  signInWithEmail:email
249
297
  password:password
@@ -256,21 +304,20 @@ RCT_EXPORT_METHOD(signInWithEmailAndPassword
256
304
  }];
257
305
  }
258
306
 
259
- RCT_EXPORT_METHOD(isSignInWithEmailLink
260
- : (FIRApp *)firebaseApp
261
- : (NSString *)emailLink
262
- : (RCTPromiseResolveBlock)resolve
263
- : (RCTPromiseRejectBlock)reject) {
264
- resolve(
265
- @([RCTConvert BOOL:@([[FIRAuth authWithApp:firebaseApp] isSignInWithEmailLink:emailLink])]));
307
+ - (NSNumber *)isSignInWithEmailLink:(NSString *)appName emailLink:(NSString *)emailLink {
308
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
309
+
310
+ return
311
+ @([RCTConvert BOOL:@([[FIRAuth authWithApp:firebaseApp] isSignInWithEmailLink:emailLink])]);
266
312
  }
267
313
 
268
- RCT_EXPORT_METHOD(signInWithEmailLink
269
- : (FIRApp *)firebaseApp
270
- : (NSString *)email
271
- : (NSString *)emailLink
272
- : (RCTPromiseResolveBlock)resolve
273
- : (RCTPromiseRejectBlock)reject) {
314
+ - (void)signInWithEmailLink:(NSString *)appName
315
+ email:(NSString *)email
316
+ emailLink:(NSString *)emailLink
317
+ resolve:(RCTPromiseResolveBlock)resolve
318
+ reject:(RCTPromiseRejectBlock)reject {
319
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
320
+
274
321
  [[FIRAuth authWithApp:firebaseApp]
275
322
  signInWithEmail:email
276
323
  link:emailLink
@@ -283,12 +330,13 @@ RCT_EXPORT_METHOD(signInWithEmailLink
283
330
  }];
284
331
  }
285
332
 
286
- RCT_EXPORT_METHOD(createUserWithEmailAndPassword
287
- : (FIRApp *)firebaseApp
288
- : (NSString *)email
289
- : (NSString *)password
290
- : (RCTPromiseResolveBlock)resolve
291
- : (RCTPromiseRejectBlock)reject) {
333
+ - (void)createUserWithEmailAndPassword:(NSString *)appName
334
+ email:(NSString *)email
335
+ password:(NSString *)password
336
+ resolve:(RCTPromiseResolveBlock)resolve
337
+ reject:(RCTPromiseRejectBlock)reject {
338
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
339
+
292
340
  [[FIRAuth authWithApp:firebaseApp]
293
341
  createUserWithEmail:email
294
342
  password:password
@@ -301,10 +349,11 @@ RCT_EXPORT_METHOD(createUserWithEmailAndPassword
301
349
  }];
302
350
  }
303
351
 
304
- RCT_EXPORT_METHOD(delete
305
- : (FIRApp *)firebaseApp
306
- : (RCTPromiseResolveBlock)resolve
307
- : (RCTPromiseRejectBlock)reject) {
352
+ - (void)deleteUser:(NSString *)appName
353
+ resolve:(RCTPromiseResolveBlock)resolve
354
+ reject:(RCTPromiseRejectBlock)reject {
355
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
356
+
308
357
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
309
358
 
310
359
  if (user) {
@@ -320,10 +369,11 @@ RCT_EXPORT_METHOD(delete
320
369
  }
321
370
  }
322
371
 
323
- RCT_EXPORT_METHOD(reload
324
- : (FIRApp *)firebaseApp
325
- : (RCTPromiseResolveBlock)resolve
326
- : (RCTPromiseRejectBlock)reject) {
372
+ - (void)reload:(NSString *)appName
373
+ resolve:(RCTPromiseResolveBlock)resolve
374
+ reject:(RCTPromiseRejectBlock)reject {
375
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
376
+
327
377
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
328
378
  if (user) {
329
379
  [self reloadAndReturnUser:user resolver:resolve rejecter:reject firebaseApp:firebaseApp];
@@ -332,11 +382,12 @@ RCT_EXPORT_METHOD(reload
332
382
  }
333
383
  }
334
384
 
335
- RCT_EXPORT_METHOD(sendEmailVerification
336
- : (FIRApp *)firebaseApp
337
- : (NSDictionary *)actionCodeSettings
338
- : (RCTPromiseResolveBlock)resolve
339
- : (RCTPromiseRejectBlock)reject) {
385
+ - (void)sendEmailVerification:(NSString *)appName
386
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
387
+ resolve:(RCTPromiseResolveBlock)resolve
388
+ reject:(RCTPromiseRejectBlock)reject {
389
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
390
+
340
391
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
341
392
  if (user) {
342
393
  id handler = ^(NSError *_Nullable error) {
@@ -358,12 +409,13 @@ RCT_EXPORT_METHOD(sendEmailVerification
358
409
  }
359
410
  }
360
411
 
361
- RCT_EXPORT_METHOD(verifyBeforeUpdateEmail
362
- : (FIRApp *)firebaseApp
363
- : (NSString *)email
364
- : (NSDictionary *)actionCodeSettings
365
- : (RCTPromiseResolveBlock)resolve
366
- : (RCTPromiseRejectBlock)reject) {
412
+ - (void)verifyBeforeUpdateEmail:(NSString *)appName
413
+ email:(NSString *)email
414
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
415
+ resolve:(RCTPromiseResolveBlock)resolve
416
+ reject:(RCTPromiseRejectBlock)reject {
417
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
418
+
367
419
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
368
420
  if (user) {
369
421
  id handler = ^(NSError *_Nullable error) {
@@ -387,11 +439,12 @@ RCT_EXPORT_METHOD(verifyBeforeUpdateEmail
387
439
  }
388
440
  }
389
441
 
390
- RCT_EXPORT_METHOD(updateEmail
391
- : (FIRApp *)firebaseApp
392
- : (NSString *)email
393
- : (RCTPromiseResolveBlock)resolve
394
- : (RCTPromiseRejectBlock)reject) {
442
+ - (void)updateEmail:(NSString *)appName
443
+ email:(NSString *)email
444
+ resolve:(RCTPromiseResolveBlock)resolve
445
+ reject:(RCTPromiseRejectBlock)reject {
446
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
447
+
395
448
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
396
449
 
397
450
  if (user) {
@@ -411,11 +464,12 @@ RCT_EXPORT_METHOD(updateEmail
411
464
  }
412
465
  }
413
466
 
414
- RCT_EXPORT_METHOD(updatePassword
415
- : (FIRApp *)firebaseApp
416
- : (NSString *)password
417
- : (RCTPromiseResolveBlock)resolve
418
- : (RCTPromiseRejectBlock)reject) {
467
+ - (void)updatePassword:(NSString *)appName
468
+ password:(NSString *)password
469
+ resolve:(RCTPromiseResolveBlock)resolve
470
+ reject:(RCTPromiseRejectBlock)reject {
471
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
472
+
419
473
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
420
474
 
421
475
  if (user) {
@@ -434,13 +488,14 @@ RCT_EXPORT_METHOD(updatePassword
434
488
  }
435
489
 
436
490
  #if TARGET_OS_IOS
437
- RCT_EXPORT_METHOD(updatePhoneNumber
438
- : (FIRApp *)firebaseApp
439
- : (NSString *)provider
440
- : (NSString *)authToken
441
- : (NSString *)authSecret
442
- : (RCTPromiseResolveBlock)resolve
443
- : (RCTPromiseRejectBlock)reject) {
491
+ - (void)updatePhoneNumber:(NSString *)appName
492
+ provider:(NSString *)provider
493
+ authToken:(NSString *)authToken
494
+ authSecret:(NSString *)authSecret
495
+ resolve:(RCTPromiseResolveBlock)resolve
496
+ reject:(RCTPromiseRejectBlock)reject {
497
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
498
+
444
499
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
445
500
 
446
501
  if (user) {
@@ -476,11 +531,12 @@ RCT_EXPORT_METHOD(updatePhoneNumber
476
531
  }
477
532
  #endif
478
533
 
479
- RCT_EXPORT_METHOD(updateProfile
480
- : (FIRApp *)firebaseApp
481
- : (NSDictionary *)props
482
- : (RCTPromiseResolveBlock)resolve
483
- : (RCTPromiseRejectBlock)reject) {
534
+ - (void)updateProfile:(NSString *)appName
535
+ props:(NSDictionary *)props
536
+ resolve:(RCTPromiseResolveBlock)resolve
537
+ reject:(RCTPromiseRejectBlock)reject {
538
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
539
+
484
540
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
485
541
 
486
542
  if (user) {
@@ -512,11 +568,12 @@ RCT_EXPORT_METHOD(updateProfile
512
568
  }
513
569
  }
514
570
 
515
- RCT_EXPORT_METHOD(getIdToken
516
- : (FIRApp *)firebaseApp
517
- : (BOOL)forceRefresh
518
- : (RCTPromiseResolveBlock)resolve
519
- : (RCTPromiseRejectBlock)reject) {
571
+ - (void)getIdToken:(NSString *)appName
572
+ forceRefresh:(BOOL)forceRefresh
573
+ resolve:(RCTPromiseResolveBlock)resolve
574
+ reject:(RCTPromiseRejectBlock)reject {
575
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
576
+
520
577
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
521
578
 
522
579
  if (user) {
@@ -533,11 +590,12 @@ RCT_EXPORT_METHOD(getIdToken
533
590
  }
534
591
  }
535
592
 
536
- RCT_EXPORT_METHOD(getIdTokenResult
537
- : (FIRApp *)firebaseApp
538
- : (BOOL)forceRefresh
539
- : (RCTPromiseResolveBlock)resolve
540
- : (RCTPromiseRejectBlock)reject) {
593
+ - (void)getIdTokenResult:(NSString *)appName
594
+ forceRefresh:(BOOL)forceRefresh
595
+ resolve:(RCTPromiseResolveBlock)resolve
596
+ reject:(RCTPromiseRejectBlock)reject {
597
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
598
+
541
599
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
542
600
 
543
601
  if (user) {
@@ -579,13 +637,14 @@ RCT_EXPORT_METHOD(getIdTokenResult
579
637
  }
580
638
  }
581
639
 
582
- RCT_EXPORT_METHOD(signInWithCredential
583
- : (FIRApp *)firebaseApp
584
- : (NSString *)provider
585
- : (NSString *)authToken
586
- : (NSString *)authSecret
587
- : (RCTPromiseResolveBlock)resolve
588
- : (RCTPromiseRejectBlock)reject) {
640
+ - (void)signInWithCredential:(NSString *)appName
641
+ provider:(NSString *)provider
642
+ authToken:(NSString *)authToken
643
+ authSecret:(NSString *)authSecret
644
+ resolve:(RCTPromiseResolveBlock)resolve
645
+ reject:(RCTPromiseRejectBlock)reject {
646
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
647
+
589
648
  FIRAuthCredential *credential = [self getCredentialForProvider:provider
590
649
  token:authToken
591
650
  secret:authSecret
@@ -611,11 +670,12 @@ RCT_EXPORT_METHOD(signInWithCredential
611
670
  }];
612
671
  }
613
672
 
614
- RCT_EXPORT_METHOD(signInWithProvider
615
- : (FIRApp *)firebaseApp
616
- : (NSDictionary *)provider
617
- : (RCTPromiseResolveBlock)resolve
618
- : (RCTPromiseRejectBlock)reject) {
673
+ - (void)signInWithProvider:(NSString *)appName
674
+ provider:(NSDictionary *)provider
675
+ resolve:(RCTPromiseResolveBlock)resolve
676
+ reject:(RCTPromiseRejectBlock)reject {
677
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
678
+
619
679
  NSString *providerId = provider[@"providerId"];
620
680
  if (providerId == nil) {
621
681
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
@@ -671,12 +731,13 @@ RCT_EXPORT_METHOD(signInWithProvider
671
731
  #endif
672
732
  }
673
733
 
674
- RCT_EXPORT_METHOD(confirmPasswordReset
675
- : (FIRApp *)firebaseApp
676
- : (NSString *)code
677
- : (NSString *)newPassword
678
- : (RCTPromiseResolveBlock)resolve
679
- : (RCTPromiseRejectBlock)reject) {
734
+ - (void)confirmPasswordReset:(NSString *)appName
735
+ code:(NSString *)code
736
+ newPassword:(NSString *)newPassword
737
+ resolve:(RCTPromiseResolveBlock)resolve
738
+ reject:(RCTPromiseRejectBlock)reject {
739
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
740
+
680
741
  [[FIRAuth authWithApp:firebaseApp]
681
742
  confirmPasswordResetWithCode:code
682
743
  newPassword:newPassword
@@ -689,11 +750,12 @@ RCT_EXPORT_METHOD(confirmPasswordReset
689
750
  }];
690
751
  }
691
752
 
692
- RCT_EXPORT_METHOD(applyActionCode
693
- : (FIRApp *)firebaseApp
694
- : (NSString *)code
695
- : (RCTPromiseResolveBlock)resolve
696
- : (RCTPromiseRejectBlock)reject) {
753
+ - (void)applyActionCode:(NSString *)appName
754
+ code:(NSString *)code
755
+ resolve:(RCTPromiseResolveBlock)resolve
756
+ reject:(RCTPromiseRejectBlock)reject {
757
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
758
+
697
759
  [[FIRAuth authWithApp:firebaseApp]
698
760
  applyActionCode:code
699
761
  completion:^(NSError *_Nullable error) {
@@ -707,11 +769,12 @@ RCT_EXPORT_METHOD(applyActionCode
707
769
  }];
708
770
  }
709
771
 
710
- RCT_EXPORT_METHOD(checkActionCode
711
- : (FIRApp *)firebaseApp
712
- : (NSString *)code
713
- : (RCTPromiseResolveBlock)resolve
714
- : (RCTPromiseRejectBlock)reject) {
772
+ - (void)checkActionCode:(NSString *)appName
773
+ code:(NSString *)code
774
+ resolve:(RCTPromiseResolveBlock)resolve
775
+ reject:(RCTPromiseRejectBlock)reject {
776
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
777
+
715
778
  [[FIRAuth authWithApp:firebaseApp]
716
779
  checkActionCode:code
717
780
  completion:^(FIRActionCodeInfo *_Nullable info, NSError *_Nullable error) {
@@ -763,11 +826,12 @@ RCT_EXPORT_METHOD(checkActionCode
763
826
  }];
764
827
  }
765
828
 
766
- RCT_EXPORT_METHOD(revokeToken
767
- : (FIRApp *)firebaseApp
768
- : (NSString *)authorizationCode
769
- : (RCTPromiseResolveBlock)resolve
770
- : (RCTPromiseRejectBlock)reject) {
829
+ - (void)revokeToken:(NSString *)appName
830
+ authorizationCode:(NSString *)authorizationCode
831
+ resolve:(RCTPromiseResolveBlock)resolve
832
+ reject:(RCTPromiseRejectBlock)reject {
833
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
834
+
771
835
  [[FIRAuth authWithApp:firebaseApp]
772
836
  revokeTokenWithAuthorizationCode:authorizationCode
773
837
  completion:^(NSError *_Nullable error) {
@@ -779,12 +843,13 @@ RCT_EXPORT_METHOD(revokeToken
779
843
  }];
780
844
  }
781
845
 
782
- RCT_EXPORT_METHOD(sendPasswordResetEmail
783
- : (FIRApp *)firebaseApp
784
- : (NSString *)email
785
- : (NSDictionary *)actionCodeSettings
786
- : (RCTPromiseResolveBlock)resolve
787
- : (RCTPromiseRejectBlock)reject) {
846
+ - (void)sendPasswordResetEmail:(NSString *)appName
847
+ email:(NSString *)email
848
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
849
+ resolve:(RCTPromiseResolveBlock)resolve
850
+ reject:(RCTPromiseRejectBlock)reject {
851
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
852
+
788
853
  id handler = ^(NSError *_Nullable error) {
789
854
  if (error) {
790
855
  [self promiseRejectAuthException:reject error:error];
@@ -803,12 +868,13 @@ RCT_EXPORT_METHOD(sendPasswordResetEmail
803
868
  }
804
869
  }
805
870
 
806
- RCT_EXPORT_METHOD(sendSignInLinkToEmail
807
- : (FIRApp *)firebaseApp
808
- : (NSString *)email
809
- : (NSDictionary *)actionCodeSettings
810
- : (RCTPromiseResolveBlock)resolve
811
- : (RCTPromiseRejectBlock)reject) {
871
+ - (void)sendSignInLinkToEmail:(NSString *)appName
872
+ email:(NSString *)email
873
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
874
+ resolve:(RCTPromiseResolveBlock)resolve
875
+ reject:(RCTPromiseRejectBlock)reject {
876
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
877
+
812
878
  id handler = ^(NSError *_Nullable error) {
813
879
  if (error) {
814
880
  [self promiseRejectAuthException:reject error:error];
@@ -823,11 +889,12 @@ RCT_EXPORT_METHOD(sendSignInLinkToEmail
823
889
  completion:handler];
824
890
  }
825
891
 
826
- RCT_EXPORT_METHOD(signInWithCustomToken
827
- : (FIRApp *)firebaseApp
828
- : (NSString *)customToken
829
- : (RCTPromiseResolveBlock)resolve
830
- : (RCTPromiseRejectBlock)reject) {
892
+ - (void)signInWithCustomToken:(NSString *)appName
893
+ customToken:(NSString *)customToken
894
+ resolve:(RCTPromiseResolveBlock)resolve
895
+ reject:(RCTPromiseRejectBlock)reject {
896
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
897
+
831
898
  [[FIRAuth authWithApp:firebaseApp]
832
899
  signInWithCustomToken:customToken
833
900
  completion:^(FIRAuthDataResult *authResult, NSError *error) {
@@ -840,13 +907,17 @@ RCT_EXPORT_METHOD(signInWithCustomToken
840
907
  }
841
908
 
842
909
  #if TARGET_OS_IOS
843
- RCT_EXPORT_METHOD(signInWithPhoneNumber
844
- : (FIRApp *)firebaseApp
845
- : (NSString *)phoneNumber
846
- : (RCTPromiseResolveBlock)resolve
847
- : (RCTPromiseRejectBlock)reject) {
910
+ - (void)signInWithPhoneNumber:(NSString *)appName
911
+ phoneNumber:(NSString *)phoneNumber
912
+ forceResend:(BOOL)forceResend
913
+ resolve:(RCTPromiseResolveBlock)resolve
914
+ reject:(RCTPromiseRejectBlock)reject {
915
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
916
+
848
917
  DLog(@"SignInWthPhoneNumber instance: %@", firebaseApp.name);
849
918
 
919
+ (void)forceResend;
920
+
850
921
  [[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
851
922
  verifyPhoneNumber:phoneNumber
852
923
  UIDelegate:nil
@@ -860,12 +931,13 @@ RCT_EXPORT_METHOD(signInWithPhoneNumber
860
931
  }
861
932
  }];
862
933
  }
863
- RCT_EXPORT_METHOD(verifyPhoneNumberWithMultiFactorInfo
864
- : (FIRApp *)firebaseApp
865
- : (NSString *)hintUid
866
- : (NSString *)sessionKey
867
- : (RCTPromiseResolveBlock)resolve
868
- : (RCTPromiseRejectBlock)reject) {
934
+ - (void)verifyPhoneNumberWithMultiFactorInfo:(NSString *)appName
935
+ hintUid:(NSString *)hintUid
936
+ sessionKey:(NSString *)sessionKey
937
+ resolve:(RCTPromiseResolveBlock)resolve
938
+ reject:(RCTPromiseRejectBlock)reject {
939
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
940
+
869
941
  if ([cachedResolver valueForKey:sessionKey] == nil) {
870
942
  [RNFBSharedUtils
871
943
  rejectPromiseWithUserInfo:reject
@@ -905,16 +977,17 @@ RCT_EXPORT_METHOD(verifyPhoneNumberWithMultiFactorInfo
905
977
  }];
906
978
  }
907
979
 
908
- RCT_EXPORT_METHOD(verifyPhoneNumberForMultiFactor
909
- : (FIRApp *)firebaseApp
910
- : (NSString *)phoneNumber
911
- : (NSString *)sessionId
912
- : (RCTPromiseResolveBlock)resolve
913
- : (RCTPromiseRejectBlock)reject) {
980
+ - (void)verifyPhoneNumberForMultiFactor:(NSString *)appName
981
+ phoneNumber:(NSString *)phoneNumber
982
+ sessionKey:(NSString *)sessionKey
983
+ resolve:(RCTPromiseResolveBlock)resolve
984
+ reject:(RCTPromiseRejectBlock)reject {
985
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
986
+
914
987
  DLog(@"verifyPhoneNumberForMultifactor using app: %@", firebaseApp.name);
915
988
  DLog(@"verifyPhoneNumberForMultifactor phoneNumber: %@", phoneNumber);
916
- DLog(@"verifyPhoneNumberForMultifactor sessionId: %@", sessionId);
917
- FIRMultiFactorSession *session = cachedSessions[sessionId];
989
+ DLog(@"verifyPhoneNumberForMultifactor sessionKey: %@", sessionKey);
990
+ FIRMultiFactorSession *session = cachedSessions[sessionKey];
918
991
  if (session == nil) {
919
992
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
920
993
  userInfo:(NSMutableDictionary *)@{
@@ -937,13 +1010,14 @@ RCT_EXPORT_METHOD(verifyPhoneNumberForMultiFactor
937
1010
  }];
938
1011
  }
939
1012
 
940
- RCT_EXPORT_METHOD(resolveMultiFactorSignIn
941
- : (FIRApp *)firebaseApp
942
- : (NSString *)sessionKey
943
- : (NSString *)verificationId
944
- : (NSString *)verificationCode
945
- : (RCTPromiseResolveBlock)resolve
946
- : (RCTPromiseRejectBlock)reject) {
1013
+ - (void)resolveMultiFactorSignIn:(NSString *)appName
1014
+ session:(NSString *)session
1015
+ verificationId:(NSString *)verificationId
1016
+ verificationCode:(NSString *)verificationCode
1017
+ resolve:(RCTPromiseResolveBlock)resolve
1018
+ reject:(RCTPromiseRejectBlock)reject {
1019
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1020
+
947
1021
  DLog(@"using instance resolve MultiFactorSignIn: %@", firebaseApp.name);
948
1022
 
949
1023
  FIRPhoneAuthCredential *credential =
@@ -955,28 +1029,28 @@ RCT_EXPORT_METHOD(resolveMultiFactorSignIn
955
1029
  FIRMultiFactorAssertion *assertion =
956
1030
  [FIRPhoneMultiFactorGenerator assertionWithCredential:credential];
957
1031
 
958
- [cachedResolver[sessionKey] resolveSignInWithAssertion:assertion
959
- completion:^(FIRAuthDataResult *_Nullable authResult,
960
- NSError *_Nullable error) {
961
- DLog(@"authError: %@", error) if (error) {
962
- [self promiseRejectAuthException:reject
963
- error:error];
964
- }
965
- else {
966
- [self promiseWithAuthResult:resolve
967
- rejecter:reject
968
- authResult:authResult];
969
- }
970
- }];
971
- }
1032
+ [cachedResolver[session] resolveSignInWithAssertion:assertion
1033
+ completion:^(FIRAuthDataResult *_Nullable authResult,
1034
+ NSError *_Nullable error) {
1035
+ DLog(@"authError: %@", error) if (error) {
1036
+ [self promiseRejectAuthException:reject error:error];
1037
+ }
1038
+ else {
1039
+ [self promiseWithAuthResult:resolve
1040
+ rejecter:reject
1041
+ authResult:authResult];
1042
+ }
1043
+ }];
1044
+ }
1045
+
1046
+ - (void)resolveTotpSignIn:(NSString *)appName
1047
+ sessionKey:(NSString *)sessionKey
1048
+ uid:(NSString *)uid
1049
+ oneTimePassword:(NSString *)oneTimePassword
1050
+ resolve:(RCTPromiseResolveBlock)resolve
1051
+ reject:(RCTPromiseRejectBlock)reject {
1052
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
972
1053
 
973
- RCT_EXPORT_METHOD(resolveTotpSignIn
974
- : (FIRApp *)firebaseApp
975
- : (NSString *)sessionKey
976
- : (NSString *)uid
977
- : (NSString *)oneTimePassword
978
- : (RCTPromiseResolveBlock)resolve
979
- : (RCTPromiseRejectBlock)reject) {
980
1054
  DLog(@"using instance resolve TotpSignIn: %@", firebaseApp.name);
981
1055
 
982
1056
  FIRMultiFactorAssertion *assertion =
@@ -997,11 +1071,12 @@ RCT_EXPORT_METHOD(resolveTotpSignIn
997
1071
  }];
998
1072
  }
999
1073
 
1000
- RCT_EXPORT_METHOD(generateTotpSecret
1001
- : (FIRApp *)firebaseApp
1002
- : (NSString *)sessionKey
1003
- : (RCTPromiseResolveBlock)resolve
1004
- : (RCTPromiseRejectBlock)reject) {
1074
+ - (void)generateTotpSecret:(NSString *)appName
1075
+ sessionKey:(NSString *)sessionKey
1076
+ resolve:(RCTPromiseResolveBlock)resolve
1077
+ reject:(RCTPromiseRejectBlock)reject {
1078
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1079
+
1005
1080
  DLog(@"using instance resolve generateTotpSecret: %@", firebaseApp.name);
1006
1081
 
1007
1082
  FIRMultiFactorSession *session = cachedSessions[sessionKey];
@@ -1026,35 +1101,40 @@ RCT_EXPORT_METHOD(generateTotpSecret
1026
1101
  }];
1027
1102
  }
1028
1103
 
1029
- RCT_EXPORT_METHOD(generateQrCodeUrl
1030
- : (FIRApp *)firebaseApp
1031
- : (NSString *)secretKey
1032
- : (NSString *)accountName
1033
- : (NSString *)issuer
1034
- : (RCTPromiseResolveBlock)resolve
1035
- : (RCTPromiseRejectBlock)reject) {
1104
+ - (NSString *)generateQrCodeUrl:(NSString *)appName
1105
+ secretKey:(NSString *)secretKey
1106
+ account:(NSString *)account
1107
+ issuer:(NSString *)issuer {
1108
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1109
+
1036
1110
  DLog(@"generateQrCodeUrl using instance resolve generateQrCodeUrl: %@", firebaseApp.name);
1037
1111
  DLog(@"generateQrCodeUrl using secretKey: %@", secretKey);
1038
1112
  FIRTOTPSecret *totpSecret = cachedTotpSecrets[secretKey];
1039
- NSString *url = [totpSecret generateQRCodeURLWithAccountName:accountName issuer:issuer];
1113
+ if (!totpSecret) {
1114
+ RNFBAuthThrowSyncErrorWithCode(@"invalid-multi-factor-secret",
1115
+ @"can't find secret for provided key");
1116
+ }
1117
+ NSString *url = [totpSecret generateQRCodeURLWithAccountName:account issuer:issuer];
1040
1118
  DLog(@"generateQrCodeUrl got QR Code URL %@", url);
1041
- resolve(url);
1119
+ return url;
1042
1120
  }
1043
1121
 
1044
- RCT_EXPORT_METHOD(openInOtpApp
1045
- : (FIRApp *)firebaseApp
1046
- : (NSString *)secretKey
1047
- : (NSString *)qrCodeUri) {
1122
+ - (void)openInOtpApp:(NSString *)appName
1123
+ secretKey:(NSString *)secretKey
1124
+ qrCodeUri:(NSString *)qrCodeUri {
1125
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1126
+
1048
1127
  DLog(@"generateQrCodeUrl using secretKey: %@", secretKey);
1049
1128
  FIRTOTPSecret *totpSecret = cachedTotpSecrets[secretKey];
1050
1129
  DLog(@"openInOtpApp using qrCodeUri: %@", qrCodeUri);
1051
1130
  [totpSecret openInOTPAppWithQRCodeURL:qrCodeUri];
1052
1131
  }
1053
1132
 
1054
- RCT_EXPORT_METHOD(getSession
1055
- : (FIRApp *)firebaseApp
1056
- : (RCTPromiseResolveBlock)resolve
1057
- : (RCTPromiseRejectBlock)reject) {
1133
+ - (void)getSession:(NSString *)appName
1134
+ resolve:(RCTPromiseResolveBlock)resolve
1135
+ reject:(RCTPromiseRejectBlock)reject {
1136
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1137
+
1058
1138
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
1059
1139
  [[user multiFactor] getSessionWithCompletion:^(FIRMultiFactorSession *_Nullable session,
1060
1140
  NSError *_Nullable error) {
@@ -1069,11 +1149,12 @@ RCT_EXPORT_METHOD(getSession
1069
1149
  }];
1070
1150
  }
1071
1151
 
1072
- RCT_EXPORT_METHOD(unenrollMultiFactor
1073
- : (FIRApp *)firebaseApp
1074
- : (NSString *)factorUID
1075
- : (RCTPromiseResolveBlock)resolve
1076
- : (RCTPromiseRejectBlock)reject) {
1152
+ - (void)unenrollMultiFactor:(NSString *)appName
1153
+ factorUID:(NSString *)factorUID
1154
+ resolve:(RCTPromiseResolveBlock)resolve
1155
+ reject:(RCTPromiseRejectBlock)reject {
1156
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1157
+
1077
1158
  DLog(@"using instance unenrollMultiFactor: %@", firebaseApp.name);
1078
1159
 
1079
1160
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
@@ -1089,13 +1170,14 @@ RCT_EXPORT_METHOD(unenrollMultiFactor
1089
1170
  }];
1090
1171
  }
1091
1172
 
1092
- RCT_EXPORT_METHOD(finalizeMultiFactorEnrollment
1093
- : (FIRApp *)firebaseApp
1094
- : (NSString *)verificationId
1095
- : (NSString *)verificationCode
1096
- : (NSString *_Nullable)displayName
1097
- : (RCTPromiseResolveBlock)resolve
1098
- : (RCTPromiseRejectBlock)reject) {
1173
+ - (void)finalizeMultiFactorEnrollment:(NSString *)appName
1174
+ verificationId:(NSString *)verificationId
1175
+ verificationCode:(NSString *)verificationCode
1176
+ displayName:(NSString *_Nullable)displayName
1177
+ resolve:(RCTPromiseResolveBlock)resolve
1178
+ reject:(RCTPromiseRejectBlock)reject {
1179
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1180
+
1099
1181
  DLog(@"using instance finalizeMultifactorEnrollment: %@", firebaseApp.name);
1100
1182
 
1101
1183
  FIRPhoneAuthCredential *credential =
@@ -1118,13 +1200,14 @@ RCT_EXPORT_METHOD(finalizeMultiFactorEnrollment
1118
1200
  }];
1119
1201
  }
1120
1202
 
1121
- RCT_EXPORT_METHOD(finalizeTotpEnrollment
1122
- : (FIRApp *)firebaseApp
1123
- : (NSString *)totpSecret
1124
- : (NSString *)verificationCode
1125
- : (NSString *_Nullable)displayName
1126
- : (RCTPromiseResolveBlock)resolve
1127
- : (RCTPromiseRejectBlock)reject) {
1203
+ - (void)finalizeTotpEnrollment:(NSString *)appName
1204
+ totpSecret:(NSString *)totpSecret
1205
+ verificationCode:(NSString *)verificationCode
1206
+ displayName:(NSString *_Nullable)displayName
1207
+ resolve:(RCTPromiseResolveBlock)resolve
1208
+ reject:(RCTPromiseRejectBlock)reject {
1209
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1210
+
1128
1211
  DLog(@"using instance finalizeTotpEnrollment: %@", firebaseApp.name);
1129
1212
 
1130
1213
  FIRTOTPSecret *cachedTotpSecret = cachedTotpSecrets[totpSecret];
@@ -1149,10 +1232,13 @@ RCT_EXPORT_METHOD(finalizeTotpEnrollment
1149
1232
  }];
1150
1233
  }
1151
1234
 
1152
- RCT_EXPORT_METHOD(verifyPhoneNumber
1153
- : (FIRApp *)firebaseApp
1154
- : (NSString *)phoneNumber
1155
- : (NSString *)requestKey) {
1235
+ - (void)verifyPhoneNumber:(NSString *)appName
1236
+ phoneNumber:(NSString *)phoneNumber
1237
+ requestKey:(NSString *)requestKey
1238
+ timeout:(double)timeout
1239
+ forceResend:(BOOL)forceResend {
1240
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1241
+
1156
1242
  DLog(@"using instance verifyPhoneNumber: %@", firebaseApp.name);
1157
1243
 
1158
1244
  [[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
@@ -1184,11 +1270,12 @@ RCT_EXPORT_METHOD(verifyPhoneNumber
1184
1270
  }];
1185
1271
  }
1186
1272
 
1187
- RCT_EXPORT_METHOD(confirmationResultConfirm
1188
- : (FIRApp *)firebaseApp
1189
- : (NSString *)verificationCode
1190
- : (RCTPromiseResolveBlock)resolve
1191
- : (RCTPromiseRejectBlock)reject) {
1273
+ - (void)confirmationResultConfirm:(NSString *)appName
1274
+ verificationCode:(NSString *)verificationCode
1275
+ resolve:(RCTPromiseResolveBlock)resolve
1276
+ reject:(RCTPromiseRejectBlock)reject {
1277
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1278
+
1192
1279
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
1193
1280
  NSString *verificationId = [defaults stringForKey:@"authVerificationID"];
1194
1281
 
@@ -1210,13 +1297,14 @@ RCT_EXPORT_METHOD(confirmationResultConfirm
1210
1297
  }
1211
1298
  #endif
1212
1299
 
1213
- RCT_EXPORT_METHOD(linkWithCredential
1214
- : (FIRApp *)firebaseApp
1215
- : (NSString *)provider
1216
- : (NSString *)authToken
1217
- : (NSString *)authSecret
1218
- : (RCTPromiseResolveBlock)resolve
1219
- : (RCTPromiseRejectBlock)reject) {
1300
+ - (void)linkWithCredential:(NSString *)appName
1301
+ provider:(NSString *)provider
1302
+ authToken:(NSString *)authToken
1303
+ authSecret:(NSString *)authSecret
1304
+ resolve:(RCTPromiseResolveBlock)resolve
1305
+ reject:(RCTPromiseRejectBlock)reject {
1306
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1307
+
1220
1308
  FIRAuthCredential *credential = [self getCredentialForProvider:provider
1221
1309
  token:authToken
1222
1310
  secret:authSecret
@@ -1246,11 +1334,12 @@ RCT_EXPORT_METHOD(linkWithCredential
1246
1334
  }
1247
1335
  }
1248
1336
 
1249
- RCT_EXPORT_METHOD(linkWithProvider
1250
- : (FIRApp *)firebaseApp
1251
- : (NSDictionary *)provider
1252
- : (RCTPromiseResolveBlock)resolve
1253
- : (RCTPromiseRejectBlock)reject) {
1337
+ - (void)linkWithProvider:(NSString *)appName
1338
+ provider:(NSDictionary *)provider
1339
+ resolve:(RCTPromiseResolveBlock)resolve
1340
+ reject:(RCTPromiseRejectBlock)reject {
1341
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1342
+
1254
1343
  NSString *providerId = provider[@"providerId"];
1255
1344
  if (providerId == nil) {
1256
1345
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
@@ -1311,11 +1400,12 @@ RCT_EXPORT_METHOD(linkWithProvider
1311
1400
  #endif
1312
1401
  }
1313
1402
 
1314
- RCT_EXPORT_METHOD(unlink
1315
- : (FIRApp *)firebaseApp
1316
- : (NSString *)providerId
1317
- : (RCTPromiseResolveBlock)resolve
1318
- : (RCTPromiseRejectBlock)reject) {
1403
+ - (void)unlink:(NSString *)appName
1404
+ providerId:(NSString *)providerId
1405
+ resolve:(RCTPromiseResolveBlock)resolve
1406
+ reject:(RCTPromiseRejectBlock)reject {
1407
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1408
+
1319
1409
  FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
1320
1410
 
1321
1411
  if (user) {
@@ -1335,13 +1425,14 @@ RCT_EXPORT_METHOD(unlink
1335
1425
  }
1336
1426
  }
1337
1427
 
1338
- RCT_EXPORT_METHOD(reauthenticateWithCredential
1339
- : (FIRApp *)firebaseApp
1340
- : (NSString *)provider
1341
- : (NSString *)authToken
1342
- : (NSString *)authSecret
1343
- : (RCTPromiseResolveBlock)resolve
1344
- : (RCTPromiseRejectBlock)reject) {
1428
+ - (void)reauthenticateWithCredential:(NSString *)appName
1429
+ provider:(NSString *)provider
1430
+ authToken:(NSString *)authToken
1431
+ authSecret:(NSString *)authSecret
1432
+ resolve:(RCTPromiseResolveBlock)resolve
1433
+ reject:(RCTPromiseRejectBlock)reject {
1434
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1435
+
1345
1436
  FIRAuthCredential *credential = [self getCredentialForProvider:provider
1346
1437
  token:authToken
1347
1438
  secret:authSecret
@@ -1375,11 +1466,12 @@ RCT_EXPORT_METHOD(reauthenticateWithCredential
1375
1466
  }
1376
1467
  }
1377
1468
 
1378
- RCT_EXPORT_METHOD(reauthenticateWithProvider
1379
- : (FIRApp *)firebaseApp
1380
- : (NSDictionary *)provider
1381
- : (RCTPromiseResolveBlock)resolve
1382
- : (RCTPromiseRejectBlock)reject) {
1469
+ - (void)reauthenticateWithProvider:(NSString *)appName
1470
+ provider:(NSDictionary *)provider
1471
+ resolve:(RCTPromiseResolveBlock)resolve
1472
+ reject:(RCTPromiseRejectBlock)reject {
1473
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1474
+
1383
1475
  NSString *providerId = provider[@"providerId"];
1384
1476
  if (providerId == nil) {
1385
1477
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
@@ -1440,11 +1532,12 @@ RCT_EXPORT_METHOD(reauthenticateWithProvider
1440
1532
  #endif
1441
1533
  }
1442
1534
 
1443
- RCT_EXPORT_METHOD(fetchSignInMethodsForEmail
1444
- : (FIRApp *)firebaseApp
1445
- : (NSString *)email
1446
- : (RCTPromiseResolveBlock)resolve
1447
- : (RCTPromiseRejectBlock)reject) {
1535
+ - (void)fetchSignInMethodsForEmail:(NSString *)appName
1536
+ email:(NSString *)email
1537
+ resolve:(RCTPromiseResolveBlock)resolve
1538
+ reject:(RCTPromiseRejectBlock)reject {
1539
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1540
+
1448
1541
  [[FIRAuth authWithApp:firebaseApp]
1449
1542
  fetchSignInMethodsForEmail:email
1450
1543
  completion:^(NSArray<NSString *> *_Nullable providers,
@@ -1460,7 +1553,9 @@ RCT_EXPORT_METHOD(fetchSignInMethodsForEmail
1460
1553
  }];
1461
1554
  }
1462
1555
 
1463
- RCT_EXPORT_METHOD(setLanguageCode : (FIRApp *)firebaseApp : (NSString *)code) {
1556
+ - (void)setLanguageCode:(NSString *)appName code:(NSString *)code {
1557
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1558
+
1464
1559
  if (code) {
1465
1560
  [FIRAuth authWithApp:firebaseApp].languageCode = code;
1466
1561
  } else {
@@ -1468,19 +1563,28 @@ RCT_EXPORT_METHOD(setLanguageCode : (FIRApp *)firebaseApp : (NSString *)code) {
1468
1563
  }
1469
1564
  }
1470
1565
 
1471
- RCT_EXPORT_METHOD(setTenantId : (FIRApp *)firebaseApp : (NSString *)tenantID) {
1472
- [FIRAuth authWithApp:firebaseApp].tenantID = tenantID;
1566
+ - (void)setTenantId:(NSString *)appName
1567
+ tenantId:(NSString *)tenantId
1568
+ resolve:(RCTPromiseResolveBlock)resolve
1569
+ reject:(RCTPromiseRejectBlock)reject {
1570
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1571
+
1572
+ [FIRAuth authWithApp:firebaseApp].tenantID = tenantId;
1573
+ resolve([NSNull null]);
1473
1574
  }
1474
1575
 
1475
- RCT_EXPORT_METHOD(useDeviceLanguage : (FIRApp *)firebaseApp) {
1576
+ - (void)useDeviceLanguage:(NSString *)appName {
1577
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1578
+
1476
1579
  [[FIRAuth authWithApp:firebaseApp] useAppLanguage];
1477
1580
  }
1478
1581
 
1479
- RCT_EXPORT_METHOD(verifyPasswordResetCode
1480
- : (FIRApp *)firebaseApp
1481
- : (NSString *)code
1482
- : (RCTPromiseResolveBlock)resolve
1483
- : (RCTPromiseRejectBlock)reject) {
1582
+ - (void)verifyPasswordResetCode:(NSString *)appName
1583
+ code:(NSString *)code
1584
+ resolve:(RCTPromiseResolveBlock)resolve
1585
+ reject:(RCTPromiseRejectBlock)reject {
1586
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1587
+
1484
1588
  [[FIRAuth authWithApp:firebaseApp]
1485
1589
  verifyPasswordResetCode:code
1486
1590
  completion:^(NSString *_Nullable email, NSError *_Nullable error) {
@@ -1492,12 +1596,11 @@ RCT_EXPORT_METHOD(verifyPasswordResetCode
1492
1596
  }];
1493
1597
  }
1494
1598
 
1495
- RCT_EXPORT_METHOD(useEmulator
1496
- : (FIRApp *)firebaseApp
1497
- : (nonnull NSString *)host
1498
- : (NSInteger)port) {
1599
+ - (void)useEmulator:(NSString *)appName host:(nonnull NSString *)host port:(double)port {
1600
+ FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
1601
+
1499
1602
  if (!emulatorConfigs[firebaseApp.name]) {
1500
- [[FIRAuth authWithApp:firebaseApp] useEmulatorWithHost:host port:port];
1603
+ [[FIRAuth authWithApp:firebaseApp] useEmulatorWithHost:host port:(NSInteger)port];
1501
1604
  emulatorConfigs[firebaseApp.name] = @YES;
1502
1605
  }
1503
1606
  }
@@ -1806,7 +1909,15 @@ RCT_EXPORT_METHOD(useEmulator
1806
1909
  return output;
1807
1910
  }
1808
1911
 
1809
- - (NSDictionary *)constantsToExport {
1912
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboAuth::Constants::Builder>)constantsToExport {
1913
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self authConstantsDictionary]];
1914
+ }
1915
+
1916
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboAuth::Constants::Builder>)getConstants {
1917
+ return [self constantsToExport];
1918
+ }
1919
+
1920
+ - (NSDictionary *)authConstantsDictionary {
1810
1921
  NSDictionary *firebaseApps = [FIRApp allApps];
1811
1922
  NSMutableDictionary *constants = [NSMutableDictionary new];
1812
1923
  NSMutableDictionary *appLanguage = [NSMutableDictionary new];