@react-native-firebase/auth 18.8.0 → 18.9.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
CHANGED
@@ -3,6 +3,12 @@
|
|
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
|
+
## [18.9.0](https://github.com/invertase/react-native-firebase/compare/v18.8.0...v18.9.0) (2024-02-21)
|
7
|
+
|
8
|
+
### Bug Fixes
|
9
|
+
|
10
|
+
- **auth:** use correct app instance (vs always default) in multifactor and phone auth ([#7564](https://github.com/invertase/react-native-firebase/issues/7564)) ([ff32fd3](https://github.com/invertase/react-native-firebase/commit/ff32fd37b39557e9a55fce016cbf986348436b92))
|
11
|
+
|
6
12
|
## [18.8.0](https://github.com/invertase/react-native-firebase/compare/v18.7.3...v18.8.0) (2024-01-25)
|
7
13
|
|
8
14
|
### Features
|
@@ -1140,10 +1140,11 @@ class ReactNativeFirebaseAuthModule extends ReactNativeFirebaseModule {
|
|
1140
1140
|
promise, "unknown", "Unsupported second factor. Only phone factors are supported.");
|
1141
1141
|
return;
|
1142
1142
|
}
|
1143
|
-
|
1143
|
+
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
1144
|
+
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(firebaseApp);
|
1144
1145
|
final Activity activity = getCurrentActivity();
|
1145
1146
|
final PhoneAuthOptions phoneAuthOptions =
|
1146
|
-
PhoneAuthOptions.newBuilder()
|
1147
|
+
PhoneAuthOptions.newBuilder(firebaseAuth)
|
1147
1148
|
.setActivity(activity)
|
1148
1149
|
.setMultiFactorHint((PhoneMultiFactorInfo) selectedHint)
|
1149
1150
|
.setTimeout(30L, TimeUnit.SECONDS)
|
@@ -1184,9 +1185,10 @@ class ReactNativeFirebaseAuthModule extends ReactNativeFirebaseModule {
|
|
1184
1185
|
rejectPromiseWithCodeAndMessage(promise, "unknown", "can't find session for provided key");
|
1185
1186
|
return;
|
1186
1187
|
}
|
1187
|
-
|
1188
|
+
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
1189
|
+
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(firebaseApp);
|
1188
1190
|
final PhoneAuthOptions phoneAuthOptions =
|
1189
|
-
PhoneAuthOptions.newBuilder()
|
1191
|
+
PhoneAuthOptions.newBuilder(firebaseAuth)
|
1190
1192
|
.setPhoneNumber(phoneNumber)
|
1191
1193
|
.setActivity(getCurrentActivity())
|
1192
1194
|
.setTimeout(30L, TimeUnit.SECONDS)
|
@@ -307,9 +307,8 @@ RCT_EXPORT_METHOD(reload
|
|
307
307
|
: (RCTPromiseResolveBlock)resolve
|
308
308
|
: (RCTPromiseRejectBlock)reject) {
|
309
309
|
FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
|
310
|
-
|
311
310
|
if (user) {
|
312
|
-
[self reloadAndReturnUser:user resolver:resolve rejecter:reject];
|
311
|
+
[self reloadAndReturnUser:user resolver:resolve rejecter:reject firebaseApp:firebaseApp];
|
313
312
|
} else {
|
314
313
|
[self promiseNoUser:resolve rejecter:reject isError:YES];
|
315
314
|
}
|
@@ -383,7 +382,10 @@ RCT_EXPORT_METHOD(updateEmail
|
|
383
382
|
if (error) {
|
384
383
|
[self promiseRejectAuthException:reject error:error];
|
385
384
|
} else {
|
386
|
-
[self reloadAndReturnUser:user
|
385
|
+
[self reloadAndReturnUser:user
|
386
|
+
resolver:resolve
|
387
|
+
rejecter:reject
|
388
|
+
firebaseApp:firebaseApp];
|
387
389
|
}
|
388
390
|
}];
|
389
391
|
} else {
|
@@ -426,7 +428,8 @@ RCT_EXPORT_METHOD(updatePhoneNumber
|
|
426
428
|
FIRPhoneAuthCredential *credential =
|
427
429
|
(FIRPhoneAuthCredential *)[self getCredentialForProvider:provider
|
428
430
|
token:authToken
|
429
|
-
secret:authSecret
|
431
|
+
secret:authSecret
|
432
|
+
firebaseApp:firebaseApp];
|
430
433
|
|
431
434
|
if (credential == nil) {
|
432
435
|
[RNFBSharedUtils
|
@@ -481,7 +484,7 @@ RCT_EXPORT_METHOD(updateProfile
|
|
481
484
|
if (error) {
|
482
485
|
[self promiseRejectAuthException:reject error:error];
|
483
486
|
} else {
|
484
|
-
[self reloadAndReturnUser:user resolver:resolve rejecter:reject];
|
487
|
+
[self reloadAndReturnUser:user resolver:resolve rejecter:reject firebaseApp:firebaseApp];
|
485
488
|
}
|
486
489
|
}];
|
487
490
|
} else {
|
@@ -565,8 +568,8 @@ RCT_EXPORT_METHOD(signInWithCredential
|
|
565
568
|
: (RCTPromiseRejectBlock)reject) {
|
566
569
|
FIRAuthCredential *credential = [self getCredentialForProvider:provider
|
567
570
|
token:authToken
|
568
|
-
secret:authSecret
|
569
|
-
|
571
|
+
secret:authSecret
|
572
|
+
firebaseApp:firebaseApp];
|
570
573
|
if (credential == nil) {
|
571
574
|
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
572
575
|
userInfo:(NSMutableDictionary *)@{
|
@@ -575,8 +578,7 @@ RCT_EXPORT_METHOD(signInWithCredential
|
|
575
578
|
@"has expired or is not currently supported.",
|
576
579
|
}];
|
577
580
|
}
|
578
|
-
|
579
|
-
[[FIRAuth authWithApp:firebaseApp]
|
581
|
+
DLog(@"using app SignInWithCredential: %@", firebaseApp.name)[[FIRAuth authWithApp:firebaseApp]
|
580
582
|
signInWithCredential:credential
|
581
583
|
completion:^(FIRAuthDataResult *authResult, NSError *error) {
|
582
584
|
if (error) {
|
@@ -602,7 +604,8 @@ RCT_EXPORT_METHOD(signInWithProvider
|
|
602
604
|
}];
|
603
605
|
}
|
604
606
|
|
605
|
-
__block FIROAuthProvider *builder =
|
607
|
+
__block FIROAuthProvider *builder =
|
608
|
+
[FIROAuthProvider providerWithProviderID:providerId auth:[FIRAuth authWithApp:firebaseApp]];
|
606
609
|
// Add scopes if present
|
607
610
|
if (provider[@"scopes"]) {
|
608
611
|
[builder setScopes:provider[@"scopes"]];
|
@@ -620,7 +623,7 @@ RCT_EXPORT_METHOD(signInWithProvider
|
|
620
623
|
return;
|
621
624
|
}
|
622
625
|
if (credential) {
|
623
|
-
[[FIRAuth
|
626
|
+
[[FIRAuth authWithApp:firebaseApp]
|
624
627
|
signInWithCredential:credential
|
625
628
|
completion:^(FIRAuthDataResult *_Nullable authResult,
|
626
629
|
NSError *_Nullable error) {
|
@@ -817,7 +820,8 @@ RCT_EXPORT_METHOD(signInWithPhoneNumber
|
|
817
820
|
: (NSString *)phoneNumber
|
818
821
|
: (RCTPromiseResolveBlock)resolve
|
819
822
|
: (RCTPromiseRejectBlock)reject) {
|
820
|
-
|
823
|
+
DLog(@"SignInWthPhoneNumber instance: %@",
|
824
|
+
firebaseApp.name)[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
821
825
|
verifyPhoneNumber:phoneNumber
|
822
826
|
UIDelegate:nil
|
823
827
|
completion:^(NSString *_Nullable verificationID, NSError *_Nullable error) {
|
@@ -858,8 +862,8 @@ RCT_EXPORT_METHOD(verifyPhoneNumberWithMultiFactorInfo
|
|
858
862
|
}];
|
859
863
|
return;
|
860
864
|
}
|
861
|
-
|
862
|
-
|
865
|
+
DLog(@"using instance verifyPhoneNumberWithMultiFactorInfo: %@",
|
866
|
+
firebaseApp.name)[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
863
867
|
verifyPhoneNumberWithMultiFactorInfo:hint
|
864
868
|
UIDelegate:nil
|
865
869
|
multiFactorSession:session
|
@@ -868,7 +872,8 @@ RCT_EXPORT_METHOD(verifyPhoneNumberWithMultiFactorInfo
|
|
868
872
|
if (error) {
|
869
873
|
[self promiseRejectAuthException:reject error:error];
|
870
874
|
} else {
|
871
|
-
|
875
|
+
DLog(@"verificationID: %@", verificationID)
|
876
|
+
resolve(verificationID);
|
872
877
|
}
|
873
878
|
}];
|
874
879
|
}
|
@@ -880,7 +885,8 @@ RCT_EXPORT_METHOD(verifyPhoneNumberForMultiFactor
|
|
880
885
|
: (RCTPromiseResolveBlock)resolve
|
881
886
|
: (RCTPromiseRejectBlock)reject) {
|
882
887
|
FIRMultiFactorSession *session = cachedSessions[sessionId];
|
883
|
-
|
888
|
+
DLog(@"using instance VerifyPhoneNumberForMultifactor: %@",
|
889
|
+
firebaseApp.name)[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
884
890
|
verifyPhoneNumber:phoneNumber
|
885
891
|
UIDelegate:nil
|
886
892
|
multiFactorSession:session
|
@@ -901,19 +907,22 @@ RCT_EXPORT_METHOD(resolveMultiFactorSignIn
|
|
901
907
|
: (NSString *)verificationCode
|
902
908
|
: (RCTPromiseResolveBlock)resolve
|
903
909
|
: (RCTPromiseRejectBlock)reject) {
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
910
|
+
DLog(@"using instance resolve MultiFactorSignIn: %@", firebaseApp.name)
|
911
|
+
FIRPhoneAuthCredential *credential =
|
912
|
+
[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
913
|
+
credentialWithVerificationID:verificationId
|
914
|
+
verificationCode:verificationCode];
|
915
|
+
DLog(@"credential: %@", credential) FIRMultiFactorAssertion *assertion =
|
909
916
|
[FIRPhoneMultiFactorGenerator assertionWithCredential:credential];
|
917
|
+
|
910
918
|
[cachedResolver[sessionKey] resolveSignInWithAssertion:assertion
|
911
919
|
completion:^(FIRAuthDataResult *_Nullable authResult,
|
912
920
|
NSError *_Nullable error) {
|
913
|
-
if (error) {
|
921
|
+
DLog(@"authError: %@", error) if (error) {
|
914
922
|
[self promiseRejectAuthException:reject
|
915
923
|
error:error];
|
916
|
-
}
|
924
|
+
}
|
925
|
+
else {
|
917
926
|
[self promiseWithAuthResult:resolve
|
918
927
|
rejecter:reject
|
919
928
|
authResult:authResult];
|
@@ -946,9 +955,11 @@ RCT_EXPORT_METHOD(finalizeMultiFactorEnrollment
|
|
946
955
|
: (NSString *_Nullable)displayName
|
947
956
|
: (RCTPromiseResolveBlock)resolve
|
948
957
|
: (RCTPromiseRejectBlock)reject) {
|
949
|
-
|
950
|
-
|
951
|
-
|
958
|
+
DLog(@"using instance finalizeMultifactorEnrollment: %@", firebaseApp.name)
|
959
|
+
FIRPhoneAuthCredential *credential =
|
960
|
+
[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
961
|
+
credentialWithVerificationID:verificationId
|
962
|
+
verificationCode:verificationCode];
|
952
963
|
FIRMultiFactorAssertion *assertion =
|
953
964
|
[FIRPhoneMultiFactorGenerator assertionWithCredential:credential];
|
954
965
|
FIRUser *user = [FIRAuth authWithApp:firebaseApp].currentUser;
|
@@ -969,12 +980,13 @@ RCT_EXPORT_METHOD(verifyPhoneNumber
|
|
969
980
|
: (FIRApp *)firebaseApp
|
970
981
|
: (NSString *)phoneNumber
|
971
982
|
: (NSString *)requestKey) {
|
972
|
-
|
983
|
+
DLog(@"using instance verifyPhoneNumber: %@",
|
984
|
+
firebaseApp.name)[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
973
985
|
verifyPhoneNumber:phoneNumber
|
974
986
|
UIDelegate:nil
|
975
987
|
completion:^(NSString *_Nullable verificationID, NSError *_Nullable error) {
|
976
988
|
if (error) {
|
977
|
-
NSDictionary *jsError = [self getJSError:
|
989
|
+
NSDictionary *jsError = [self getJSError:error];
|
978
990
|
NSDictionary *body = @{
|
979
991
|
@"type" : @"onVerificationFailed",
|
980
992
|
@"requestKey" : requestKey,
|
@@ -1007,12 +1019,14 @@ RCT_EXPORT_METHOD(confirmationResultConfirm
|
|
1007
1019
|
NSString *verificationId = [defaults stringForKey:@"authVerificationID"];
|
1008
1020
|
|
1009
1021
|
FIRAuthCredential *credential =
|
1010
|
-
[[FIRPhoneAuthProvider
|
1011
|
-
|
1022
|
+
[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
1023
|
+
credentialWithVerificationID:verificationId
|
1024
|
+
verificationCode:verificationCode];
|
1012
1025
|
|
1013
1026
|
[[FIRAuth authWithApp:firebaseApp]
|
1014
1027
|
signInWithCredential:credential
|
1015
1028
|
completion:^(FIRAuthDataResult *authResult, NSError *error) {
|
1029
|
+
DLog(@"auth error: %long", (long)error.code);
|
1016
1030
|
if (error) {
|
1017
1031
|
[self promiseRejectAuthException:reject error:error];
|
1018
1032
|
} else {
|
@@ -1030,7 +1044,8 @@ RCT_EXPORT_METHOD(linkWithCredential
|
|
1030
1044
|
: (RCTPromiseRejectBlock)reject) {
|
1031
1045
|
FIRAuthCredential *credential = [self getCredentialForProvider:provider
|
1032
1046
|
token:authToken
|
1033
|
-
secret:authSecret
|
1047
|
+
secret:authSecret
|
1048
|
+
firebaseApp:firebaseApp];
|
1034
1049
|
|
1035
1050
|
if (credential == nil) {
|
1036
1051
|
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
@@ -1077,7 +1092,8 @@ RCT_EXPORT_METHOD(linkWithProvider
|
|
1077
1092
|
return;
|
1078
1093
|
}
|
1079
1094
|
|
1080
|
-
__block FIROAuthProvider *builder =
|
1095
|
+
__block FIROAuthProvider *builder =
|
1096
|
+
[FIROAuthProvider providerWithProviderID:providerId auth:[FIRAuth authWithApp:firebaseApp]];
|
1081
1097
|
// Add scopes if present
|
1082
1098
|
if (provider[@"scopes"]) {
|
1083
1099
|
[builder setScopes:provider[@"scopes"]];
|
@@ -1131,7 +1147,10 @@ RCT_EXPORT_METHOD(unlink
|
|
1131
1147
|
if (error) {
|
1132
1148
|
[self promiseRejectAuthException:reject error:error];
|
1133
1149
|
} else {
|
1134
|
-
[self reloadAndReturnUser:user
|
1150
|
+
[self reloadAndReturnUser:user
|
1151
|
+
resolver:resolve
|
1152
|
+
rejecter:reject
|
1153
|
+
firebaseApp:firebaseApp];
|
1135
1154
|
}
|
1136
1155
|
}];
|
1137
1156
|
} else {
|
@@ -1148,7 +1167,8 @@ RCT_EXPORT_METHOD(reauthenticateWithCredential
|
|
1148
1167
|
: (RCTPromiseRejectBlock)reject) {
|
1149
1168
|
FIRAuthCredential *credential = [self getCredentialForProvider:provider
|
1150
1169
|
token:authToken
|
1151
|
-
secret:authSecret
|
1170
|
+
secret:authSecret
|
1171
|
+
firebaseApp:firebaseApp];
|
1152
1172
|
|
1153
1173
|
if (credential == nil) {
|
1154
1174
|
[RNFBSharedUtils rejectPromiseWithUserInfo:reject
|
@@ -1199,7 +1219,8 @@ RCT_EXPORT_METHOD(reauthenticateWithProvider
|
|
1199
1219
|
return;
|
1200
1220
|
}
|
1201
1221
|
|
1202
|
-
__block FIROAuthProvider *builder =
|
1222
|
+
__block FIROAuthProvider *builder =
|
1223
|
+
[FIROAuthProvider providerWithProviderID:providerId auth:[FIRAuth authWithApp:firebaseApp]];
|
1203
1224
|
// Add scopes if present
|
1204
1225
|
if (provider[@"scopes"]) {
|
1205
1226
|
[builder setScopes:provider[@"scopes"]];
|
@@ -1305,7 +1326,8 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1305
1326
|
|
1306
1327
|
- (FIRAuthCredential *)getCredentialForProvider:(NSString *)provider
|
1307
1328
|
token:(NSString *)authToken
|
1308
|
-
secret:(NSString *)authTokenSecret
|
1329
|
+
secret:(NSString *)authTokenSecret
|
1330
|
+
firebaseApp:(FIRApp *)firebaseApp {
|
1309
1331
|
FIRAuthCredential *credential;
|
1310
1332
|
|
1311
1333
|
// First check if we cached an authToken
|
@@ -1334,8 +1356,10 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1334
1356
|
} else if ([provider compare:@"github.com" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
|
1335
1357
|
credential = [FIRGitHubAuthProvider credentialWithToken:authToken];
|
1336
1358
|
} else if ([provider compare:@"phone" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
|
1337
|
-
|
1338
|
-
|
1359
|
+
DLog(@"using app credGen: %@", firebaseApp.name) credential =
|
1360
|
+
[[FIRPhoneAuthProvider providerWithAuth:[FIRAuth authWithApp:firebaseApp]]
|
1361
|
+
credentialWithVerificationID:authToken
|
1362
|
+
verificationCode:authTokenSecret];
|
1339
1363
|
} else if ([provider compare:@"oauth" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
|
1340
1364
|
credential = [FIROAuthProvider credentialWithProviderID:@"oauth"
|
1341
1365
|
IDToken:authToken
|
@@ -1355,7 +1379,8 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1355
1379
|
// correctly refresh the user object when performing certain operations
|
1356
1380
|
- (void)reloadAndReturnUser:(FIRUser *)user
|
1357
1381
|
resolver:(RCTPromiseResolveBlock)resolve
|
1358
|
-
rejecter:(RCTPromiseRejectBlock)reject
|
1382
|
+
rejecter:(RCTPromiseRejectBlock)reject
|
1383
|
+
firebaseApp:(FIRApp *)firebaseApp {
|
1359
1384
|
[user reloadWithCompletion:^(NSError *_Nullable error) {
|
1360
1385
|
if (error) {
|
1361
1386
|
[self promiseRejectAuthException:reject error:error];
|
@@ -1386,6 +1411,7 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1386
1411
|
return @{
|
1387
1412
|
@"hints" : [self convertMultiFactorData:resolver.hints],
|
1388
1413
|
@"session" : sessionHash,
|
1414
|
+
@"auth" : resolver.auth
|
1389
1415
|
};
|
1390
1416
|
}
|
1391
1417
|
|
@@ -1399,7 +1425,7 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1399
1425
|
}
|
1400
1426
|
|
1401
1427
|
- (void)promiseRejectAuthException:(RCTPromiseRejectBlock)reject error:(NSError *)error {
|
1402
|
-
NSDictionary *jsError = [self getJSError:
|
1428
|
+
NSDictionary *jsError = [self getJSError:error];
|
1403
1429
|
|
1404
1430
|
[RNFBSharedUtils
|
1405
1431
|
rejectPromiseWithUserInfo:reject
|
@@ -1499,8 +1525,7 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1499
1525
|
|
1500
1526
|
NSDictionary *resolverDict = nil;
|
1501
1527
|
if ([error userInfo][FIRAuthErrorUserInfoMultiFactorResolverKey] != nil) {
|
1502
|
-
FIRMultiFactorResolver *resolver =
|
1503
|
-
(FIRMultiFactorResolver *)error.userInfo[FIRAuthErrorUserInfoMultiFactorResolverKey];
|
1528
|
+
FIRMultiFactorResolver *resolver = error.userInfo[FIRAuthErrorUserInfoMultiFactorResolverKey];
|
1504
1529
|
resolverDict = [self multiFactorResolverToDict:resolver];
|
1505
1530
|
|
1506
1531
|
NSString *sessionKey = [NSString stringWithFormat:@"%@", @([resolver.session hash])];
|
@@ -1665,7 +1690,7 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1665
1690
|
[[[NSISO8601DateFormatter alloc] init] stringFromDate:hint.enrollmentDate];
|
1666
1691
|
[enrolledFactors addObject:@{
|
1667
1692
|
@"uid" : hint.UID,
|
1668
|
-
@"factorId" :
|
1693
|
+
@"factorId" : [self getJSFactorId:(hint.factorID)],
|
1669
1694
|
@"displayName" : hint.displayName == nil ? [NSNull null] : hint.displayName,
|
1670
1695
|
@"enrollmentDate" : enrollmentDate,
|
1671
1696
|
}];
|
@@ -1720,4 +1745,4 @@ RCT_EXPORT_METHOD(useEmulator
|
|
1720
1745
|
return settings;
|
1721
1746
|
}
|
1722
1747
|
|
1723
|
-
@end
|
1748
|
+
@end
|
package/lib/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
// Generated by genversion.
|
2
|
-
module.exports = '18.
|
2
|
+
module.exports = '18.9.0';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@react-native-firebase/auth",
|
3
|
-
"version": "18.
|
3
|
+
"version": "18.9.0",
|
4
4
|
"author": "Invertase <oss@invertase.io> (http://invertase.io)",
|
5
5
|
"description": "React Native Firebase - The authentication module provides an easy-to-use API to integrate an authentication workflow into new and existing applications. React Native Firebase provides access to all Firebase authentication methods and identity providers.",
|
6
6
|
"main": "lib/index.js",
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"plist": "^3.1.0"
|
28
28
|
},
|
29
29
|
"peerDependencies": {
|
30
|
-
"@react-native-firebase/app": "18.
|
30
|
+
"@react-native-firebase/app": "18.9.0",
|
31
31
|
"expo": ">=47.0.0"
|
32
32
|
},
|
33
33
|
"devDependencies": {
|
@@ -42,5 +42,5 @@
|
|
42
42
|
"publishConfig": {
|
43
43
|
"access": "public"
|
44
44
|
},
|
45
|
-
"gitHead": "
|
45
|
+
"gitHead": "695265641dcf2243ab9f27b25776f11616225f68"
|
46
46
|
}
|