Merge
This commit is contained in:
commit
35aeef460f
|
@ -1,8 +1,6 @@
|
|||
#ifndef RNFirebase_h
|
||||
#define RNFirebase_h
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <React/RCTEventDispatcher.h>
|
||||
#import <React/RCTEventEmitter.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
|
||||
|
|
|
@ -1,36 +1,18 @@
|
|||
#import "RNFirebase.h"
|
||||
#import "RNFirebaseEvents.h"
|
||||
|
||||
static dispatch_once_t onceToken;
|
||||
|
||||
@implementation RNFirebase
|
||||
RCT_EXPORT_MODULE(RNFirebase);
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
NSLog(@"Dealloc called on RNFirebase: %@", self);
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
if (self != nil) {
|
||||
NSLog(@"Setting up RNFirebase instance");
|
||||
[RNFirebase initializeRNFirebase];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
+ (void)initializeRNFirebase {
|
||||
#if __has_include(<FirebaseMessaging/FirebaseMessaging.h>)
|
||||
dispatch_once(&onceToken, ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kRNFirebaseInitialized object:nil];
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
- (NSArray<NSString *> *)supportedEvents {
|
||||
return @[INITIALIZED_EVENT];
|
||||
return @[];
|
||||
}
|
||||
|
||||
@end
|
||||
@end
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
RCT_EXPORT_MODULE();
|
||||
|
||||
RCT_EXPORT_METHOD(log:(NSString *)message) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#import "RNFirebase.h"
|
||||
#import "RNFirebaseAnalytics.h"
|
||||
|
||||
#if __has_include(<FirebaseAnalytics/FIRAnalytics.h>)
|
||||
|
@ -35,7 +34,5 @@ RCT_EXPORT_METHOD(setSessionTimeoutDuration:(nonnull NSNumber *) milliseconds) {
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseAnalytics
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#ifndef RNFirebaseAuth_h
|
||||
#define RNFirebaseAuth_h
|
||||
|
||||
#import <React/RCTEventEmitter.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
|
||||
#if __has_include(<FirebaseAuth/FIRAuth.h>)
|
||||
#import "Firebase.h"
|
||||
#import <React/RCTEventEmitter.h>
|
||||
|
||||
@interface RNFirebaseAuth : RCTEventEmitter <RCTBridgeModule> {
|
||||
FIRAuthStateDidChangeListenerHandle authListenerHandle;
|
||||
|
@ -15,7 +15,7 @@
|
|||
@end
|
||||
|
||||
#else
|
||||
@interface RNFirebaseAuth : RCTEventEmitter <RCTBridgeModule> {
|
||||
@interface RNFirebaseAuth : NSObject <RCTBridgeModule> {
|
||||
}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -8,7 +8,7 @@ RCT_EXPORT_MODULE();
|
|||
|
||||
/**
|
||||
addAuthStateListener
|
||||
|
||||
|
||||
*/
|
||||
RCT_EXPORT_METHOD(addAuthStateListener) {
|
||||
self->listening = true;
|
||||
|
@ -23,7 +23,7 @@ RCT_EXPORT_METHOD(addAuthStateListener) {
|
|||
|
||||
/**
|
||||
removeAuthStateListener
|
||||
|
||||
|
||||
*/
|
||||
RCT_EXPORT_METHOD(removeAuthStateListener) {
|
||||
if (self->authListenerHandle != nil) {
|
||||
|
@ -34,14 +34,14 @@ RCT_EXPORT_METHOD(removeAuthStateListener) {
|
|||
|
||||
/**
|
||||
signOut
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return
|
||||
*/
|
||||
RCT_EXPORT_METHOD(signOut:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
NSError *error;
|
||||
[[FIRAuth auth] signOut:&error];
|
||||
|
@ -55,7 +55,7 @@ RCT_EXPORT_METHOD(signOut:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseR
|
|||
|
||||
/**
|
||||
signInAnonymously
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return
|
||||
|
@ -68,12 +68,12 @@ RCT_EXPORT_METHOD(signInAnonymously:(RCTPromiseResolveBlock) resolve rejecter:(R
|
|||
[self promiseWithUser:resolve rejecter:reject user:user];
|
||||
}
|
||||
}];
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
signInWithEmailAndPassword
|
||||
|
||||
|
||||
@param NSString NSString email
|
||||
@param NSString NSString password
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
|
@ -92,7 +92,7 @@ RCT_EXPORT_METHOD(signInWithEmailAndPassword:(NSString *)email pass:(NSString *)
|
|||
|
||||
/**
|
||||
createUserWithEmailAndPassword
|
||||
|
||||
|
||||
@param NSString NSString email
|
||||
@param NSString NSString password
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
|
@ -111,14 +111,14 @@ RCT_EXPORT_METHOD(createUserWithEmailAndPassword:(NSString *)email pass:(NSStrin
|
|||
|
||||
/**
|
||||
deleteUser
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return return
|
||||
*/
|
||||
RCT_EXPORT_METHOD(delete:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user deleteWithCompletion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -134,14 +134,14 @@ RCT_EXPORT_METHOD(delete:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRe
|
|||
|
||||
/**
|
||||
reload
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return return
|
||||
*/
|
||||
RCT_EXPORT_METHOD(reload:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user reloadWithCompletion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -158,14 +158,14 @@ RCT_EXPORT_METHOD(reload:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRe
|
|||
|
||||
/**
|
||||
sendEmailVerification
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return return
|
||||
*/
|
||||
RCT_EXPORT_METHOD(sendEmailVerification:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user sendEmailVerificationWithCompletion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -181,7 +181,7 @@ RCT_EXPORT_METHOD(sendEmailVerification:(RCTPromiseResolveBlock) resolve rejecte
|
|||
|
||||
/**
|
||||
updateEmail
|
||||
|
||||
|
||||
@param NSString email
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
|
@ -189,7 +189,7 @@ RCT_EXPORT_METHOD(sendEmailVerification:(RCTPromiseResolveBlock) resolve rejecte
|
|||
*/
|
||||
RCT_EXPORT_METHOD(updateEmail:(NSString *) email resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user updateEmail:email completion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -206,7 +206,7 @@ RCT_EXPORT_METHOD(updateEmail:(NSString *) email resolver:(RCTPromiseResolveBloc
|
|||
|
||||
/**
|
||||
updatePassword
|
||||
|
||||
|
||||
@param NSString password
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
|
@ -214,7 +214,7 @@ RCT_EXPORT_METHOD(updateEmail:(NSString *) email resolver:(RCTPromiseResolveBloc
|
|||
*/
|
||||
RCT_EXPORT_METHOD(updatePassword:(NSString *) password resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user updatePassword:password completion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -231,7 +231,7 @@ RCT_EXPORT_METHOD(updatePassword:(NSString *) password resolver:(RCTPromiseResol
|
|||
|
||||
/**
|
||||
updateProfile
|
||||
|
||||
|
||||
@param NSDictionary props
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
|
@ -239,11 +239,11 @@ RCT_EXPORT_METHOD(updatePassword:(NSString *) password resolver:(RCTPromiseResol
|
|||
*/
|
||||
RCT_EXPORT_METHOD(updateProfile:(NSDictionary *) props resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
FIRUserProfileChangeRequest *changeRequest = [user profileChangeRequest];
|
||||
NSMutableArray *allKeys = [[props allKeys] mutableCopy];
|
||||
|
||||
|
||||
for (NSString *key in allKeys) {
|
||||
@try {
|
||||
if ([key isEqualToString:@"photoURL"]) {
|
||||
|
@ -256,7 +256,7 @@ RCT_EXPORT_METHOD(updateProfile:(NSDictionary *) props resolver:(RCTPromiseResol
|
|||
NSLog(@"Exception occurred while configuring: %@", exception);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
[self promiseRejectAuthException:reject error:error];
|
||||
|
@ -273,14 +273,14 @@ RCT_EXPORT_METHOD(updateProfile:(NSDictionary *) props resolver:(RCTPromiseResol
|
|||
|
||||
/**
|
||||
getToken
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return
|
||||
*/
|
||||
RCT_EXPORT_METHOD(getToken:(BOOL)forceRefresh resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user getIDTokenForcingRefresh:(BOOL) forceRefresh completion:^(NSString *token, NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -296,7 +296,7 @@ RCT_EXPORT_METHOD(getToken:(BOOL)forceRefresh resolver:(RCTPromiseResolveBlock)
|
|||
|
||||
/**
|
||||
signInWithCredential
|
||||
|
||||
|
||||
@param NSString provider
|
||||
@param NSString authToken
|
||||
@param NSString authSecret
|
||||
|
@ -306,11 +306,11 @@ RCT_EXPORT_METHOD(getToken:(BOOL)forceRefresh resolver:(RCTPromiseResolveBlock)
|
|||
*/
|
||||
RCT_EXPORT_METHOD(signInWithCredential:(NSString *)provider token:(NSString *)authToken secret:(NSString *)authSecret resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRAuthCredential *credential = [self getCredentialForProvider:provider token:authToken secret:authSecret];
|
||||
|
||||
|
||||
if (credential == nil) {
|
||||
return reject(@"auth/invalid-credential", @"The supplied auth credential is malformed, has expired or is not currently supported.", nil);
|
||||
}
|
||||
|
||||
|
||||
[[FIRAuth auth] signInWithCredential:credential completion:^(FIRUser *user, NSError *error) {
|
||||
if (error) {
|
||||
[self promiseRejectAuthException:reject error:error];
|
||||
|
@ -322,7 +322,7 @@ RCT_EXPORT_METHOD(signInWithCredential:(NSString *)provider token:(NSString *)au
|
|||
|
||||
/**
|
||||
sendPasswordResetEmail
|
||||
|
||||
|
||||
@param NSString email
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
|
@ -340,7 +340,7 @@ RCT_EXPORT_METHOD(sendPasswordResetEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
/**
|
||||
getCurrentUser
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return
|
||||
|
@ -353,7 +353,7 @@ RCT_EXPORT_METHOD(getCurrentUser:(RCTPromiseResolveBlock) resolve rejecter:(RCTP
|
|||
|
||||
/**
|
||||
signInWithCustomToken
|
||||
|
||||
|
||||
@param RCTPromiseResolveBlock resolve
|
||||
@param RCTPromiseRejectBlock reject
|
||||
@return
|
||||
|
@ -370,7 +370,7 @@ RCT_EXPORT_METHOD(signInWithCustomToken: (NSString *)customToken resolver:(RCTPr
|
|||
|
||||
/**
|
||||
link - *insert zelda joke here*
|
||||
|
||||
|
||||
@param NSString provider
|
||||
@param NSString authToken
|
||||
@param NSString authSecret
|
||||
|
@ -380,13 +380,13 @@ RCT_EXPORT_METHOD(signInWithCustomToken: (NSString *)customToken resolver:(RCTPr
|
|||
*/
|
||||
RCT_EXPORT_METHOD(link:(NSString *)provider authToken:(NSString *)authToken authSecret:(NSString *)authSecret resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRAuthCredential *credential = [self getCredentialForProvider:provider token:authToken secret:authSecret];
|
||||
|
||||
|
||||
if (credential == nil) {
|
||||
return reject(@"auth/invalid-credential", @"The supplied auth credential is malformed, has expired or is not currently supported.", nil);
|
||||
}
|
||||
|
||||
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user linkWithCredential:credential completion:^(FIRUser *_Nullable _user, NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -402,7 +402,7 @@ RCT_EXPORT_METHOD(link:(NSString *)provider authToken:(NSString *)authToken auth
|
|||
|
||||
/**
|
||||
reauthenticate
|
||||
|
||||
|
||||
@param NSString provider
|
||||
@param NSString authToken
|
||||
@param NSString authSecret
|
||||
|
@ -412,13 +412,13 @@ RCT_EXPORT_METHOD(link:(NSString *)provider authToken:(NSString *)authToken auth
|
|||
*/
|
||||
RCT_EXPORT_METHOD(reauthenticate:(NSString *)provider authToken:(NSString *)authToken authSecret:(NSString *)authSecret resolver:(RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock) reject) {
|
||||
FIRAuthCredential *credential = [self getCredentialForProvider:provider token:authToken secret:authSecret];
|
||||
|
||||
|
||||
if (credential == nil) {
|
||||
return reject(@"auth/invalid-credential", @"The supplied auth credential is malformed, has expired or is not currently supported.", nil);
|
||||
}
|
||||
|
||||
|
||||
FIRUser *user = [FIRAuth auth].currentUser;
|
||||
|
||||
|
||||
if (user) {
|
||||
[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
|
||||
if (error) {
|
||||
|
@ -456,7 +456,7 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
/**
|
||||
getCredentialForProvider
|
||||
|
||||
|
||||
@param provider
|
||||
@param authToken
|
||||
@param authTokenSecret
|
||||
|
@ -464,7 +464,7 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
*/
|
||||
- (FIRAuthCredential *)getCredentialForProvider:(NSString *)provider token:(NSString *)authToken secret:(NSString *)authTokenSecret {
|
||||
FIRAuthCredential *credential;
|
||||
|
||||
|
||||
if ([provider compare:@"twitter" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
|
||||
credential = [FIRTwitterAuthProvider credentialWithToken:authToken secret:authTokenSecret];
|
||||
} else if ([provider compare:@"facebook" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
|
||||
|
@ -478,7 +478,7 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
} else {
|
||||
NSLog(@"Provider not yet handled: %@", provider);
|
||||
}
|
||||
|
||||
|
||||
return credential;
|
||||
}
|
||||
|
||||
|
@ -486,7 +486,7 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
/**
|
||||
Resolve or reject a promise based on isError value
|
||||
|
||||
|
||||
@param resolve RCTPromiseResolveBlock
|
||||
@param reject RCTPromiseRejectBlock
|
||||
@param isError BOOL
|
||||
|
@ -501,14 +501,14 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
/**
|
||||
Reject a promise with an auth exception
|
||||
|
||||
|
||||
@param reject RCTPromiseRejectBlock
|
||||
@param error NSError
|
||||
*/
|
||||
- (void) promiseRejectAuthException:(RCTPromiseRejectBlock) reject error:(NSError *)error {
|
||||
NSString *code = @"auth/unknown";
|
||||
NSString *message = [error localizedDescription];
|
||||
|
||||
|
||||
switch (error.code) {
|
||||
case FIRAuthErrorCodeInvalidCustomToken:
|
||||
code = @"auth/invalid-custom-token";
|
||||
|
@ -582,7 +582,7 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
code = @"auth/internal-error";
|
||||
message = @"An internal error has occurred, please try again.";
|
||||
break;
|
||||
|
||||
|
||||
// unsure of the below codes so leaving them as the default error message
|
||||
case FIRAuthErrorCodeTooManyRequests:
|
||||
code = @"auth/too-many-requests";
|
||||
|
@ -617,13 +617,13 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
reject(code, message, error);
|
||||
}
|
||||
|
||||
/**
|
||||
Resolve or reject a promise based on FIRUser value existance
|
||||
|
||||
|
||||
@param resolve RCTPromiseResolveBlock
|
||||
@param reject RCTPromiseRejectBlock
|
||||
@param user FIRUser
|
||||
|
@ -635,13 +635,13 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
} else {
|
||||
[self promiseNoUser:resolve rejecter:reject isError:YES];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
wrapper for sendEventWithName for auth events
|
||||
|
||||
|
||||
@param title sendEventWithName
|
||||
@param props <#props description#>
|
||||
*/
|
||||
|
@ -659,45 +659,45 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
/**
|
||||
Converts an array of FIRUserInfo instances into the correct format to match the web sdk
|
||||
|
||||
|
||||
@param providerData FIRUser.providerData
|
||||
@return NSArray
|
||||
*/
|
||||
- (NSArray <NSObject *> *) convertProviderData:(NSArray <id<FIRUserInfo>> *) providerData {
|
||||
NSMutableArray *output = [NSMutableArray array];
|
||||
|
||||
|
||||
for (id<FIRUserInfo> userInfo in providerData) {
|
||||
NSMutableDictionary *pData = [NSMutableDictionary dictionary];
|
||||
|
||||
|
||||
if (userInfo.providerID != nil) {
|
||||
[pData setValue: userInfo.providerID forKey:@"providerId"];
|
||||
}
|
||||
|
||||
|
||||
if (userInfo.uid != nil) {
|
||||
[pData setValue: userInfo.uid forKey:@"uid"];
|
||||
}
|
||||
|
||||
|
||||
if (userInfo.displayName != nil) {
|
||||
[pData setValue: userInfo.displayName forKey:@"displayName"];
|
||||
}
|
||||
|
||||
|
||||
if (userInfo.photoURL != nil) {
|
||||
[pData setValue: [userInfo.photoURL absoluteString] forKey:@"photoURL"];
|
||||
}
|
||||
|
||||
|
||||
if (userInfo.email != nil) {
|
||||
[pData setValue: userInfo.email forKey:@"email"];
|
||||
}
|
||||
|
||||
|
||||
[output addObject:pData];
|
||||
}
|
||||
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
/**
|
||||
Converts a FIRUser instance into a dictionary to send via RNBridge
|
||||
|
||||
|
||||
@param user FIRUser
|
||||
@return NSDictionary
|
||||
*/
|
||||
|
@ -713,11 +713,11 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
@"providerData": [self convertProviderData: user.providerData]
|
||||
} mutableCopy
|
||||
];
|
||||
|
||||
|
||||
if ([user valueForKey:@"photoURL"] != nil) {
|
||||
[userDict setValue: [user.photoURL absoluteString] forKey:@"photoURL"];
|
||||
}
|
||||
|
||||
|
||||
return userDict;
|
||||
}
|
||||
|
||||
|
@ -729,7 +729,5 @@ RCT_EXPORT_METHOD(fetchProvidersForEmail:(NSString *)email resolver:(RCTPromiseR
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseAuth
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -23,7 +23,5 @@ RCT_EXPORT_METHOD(report:(NSString *) message) {
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseCrash
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -1,20 +1,19 @@
|
|||
#ifndef RNFirebaseDatabase_h
|
||||
#define RNFirebaseDatabase_h
|
||||
|
||||
#import <React/RCTEventEmitter.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
|
||||
#if __has_include(<FirebaseDatabase/FIRDatabase.h>)
|
||||
#import "Firebase.h"
|
||||
#import <React/RCTEventEmitter.h>
|
||||
|
||||
@interface RNFirebaseDatabase : RCTEventEmitter <RCTBridgeModule> {}
|
||||
@interface RNFirebaseDatabase : RCTEventEmitter<RCTBridgeModule> {}
|
||||
@property NSMutableDictionary *dbReferences;
|
||||
@property NSMutableDictionary *transactions;
|
||||
@property dispatch_queue_t transactionQueue;
|
||||
@end
|
||||
|
||||
#else
|
||||
@interface RNFirebaseDatabase : RCTEventEmitter <RCTBridgeModule> {}
|
||||
@interface RNFirebaseDatabase : NSObject<RCTBridgeModule> {}
|
||||
@end
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#import "RNFirebase.h"
|
||||
#import "RNFirebaseDatabase.h"
|
||||
#import "RNFirebaseEvents.h"
|
||||
|
||||
#import "Firebase.h"
|
||||
|
||||
#if __has_include(<FirebaseDatabase/FIRDatabase.h>)
|
||||
|
||||
|
@ -512,7 +511,5 @@ RCT_EXPORT_METHOD(goOnline) {
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseDatabase
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -3,20 +3,9 @@
|
|||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
|
||||
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
|
||||
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
|
||||
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
|
||||
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
|
||||
#define RNFIREBASE_QUEUE_NAME "com.invertase.firebase.WorkerQueue"
|
||||
|
||||
static NSString *const kRNFirebaseInitialized = @"RNFirebaseInitializedEvent";
|
||||
static NSString *const INITIALIZED_EVENT = @"RNFirebaseInitialized";
|
||||
|
||||
static NSString *const AUTH_CHANGED_EVENT = @"onAuthStateChanged";
|
||||
static NSString *const AUTH_ERROR_EVENT = @"authError";
|
||||
static NSString *const AUTH_ANONYMOUS_ERROR_EVENT = @"authAnonymousError";
|
||||
static NSString *const DEBUG_EVENT = @"debug";
|
||||
|
||||
// Database
|
||||
static NSString *const DATABASE_DATA_EVENT = @"database_event";
|
||||
|
@ -29,7 +18,6 @@ static NSString *const DATABASE_CHILD_MODIFIED_EVENT = @"child_changed";
|
|||
static NSString *const DATABASE_CHILD_REMOVED_EVENT = @"child_removed";
|
||||
static NSString *const DATABASE_CHILD_MOVED_EVENT = @"child_moved";
|
||||
|
||||
|
||||
// Storage
|
||||
static NSString *const STORAGE_EVENT = @"storage_event";
|
||||
static NSString *const STORAGE_ERROR = @"storage_error";
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
#ifndef RNFirebaseMessaging_h
|
||||
#define RNFirebaseMessaging_h
|
||||
|
||||
#import <React/RCTEventEmitter.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
|
||||
#if __has_include(<FirebaseMessaging/FirebaseMessaging.h>)
|
||||
#import "Firebase.h"
|
||||
#import <FirebaseMessaging/FirebaseMessaging.h>
|
||||
|
||||
#import <React/RCTUtils.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <React/RCTEventEmitter.h>
|
||||
|
||||
@import UserNotifications;
|
||||
|
||||
|
@ -30,7 +26,7 @@ typedef void (^RCTNotificationResponseCallback)();
|
|||
@end
|
||||
|
||||
#else
|
||||
@interface RNFirebaseMessaging : RCTEventEmitter<RCTBridgeModule>
|
||||
@interface RNFirebaseMessaging : NSObject<RCTBridgeModule>
|
||||
@end
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#import "RNFirebaseMessaging.h"
|
||||
|
||||
@import UserNotifications;
|
||||
#if __has_include(<FirebaseMessaging/FirebaseMessaging.h>)
|
||||
#import "RNFirebaseEvents.h"
|
||||
#import <FirebaseMessaging/FirebaseMessaging.h>
|
||||
|
||||
#import <React/RCTEventDispatcher.h>
|
||||
#import <React/RCTConvert.h>
|
||||
#import <React/RCTUtils.h>
|
||||
|
||||
@import UserNotifications;
|
||||
#if __has_include(<FirebaseMessaging/FirebaseMessaging.h>)
|
||||
#import <FirebaseMessaging/FirebaseMessaging.h>
|
||||
|
||||
@implementation RCTConvert (NSCalendarUnit)
|
||||
|
||||
RCT_ENUM_CONVERTER(NSCalendarUnit,
|
||||
|
@ -420,7 +420,5 @@ RCT_EXPORT_METHOD(finishNotificationResponse: (NSString *)completionHandlerId) {
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseMessaging
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -49,7 +49,5 @@ RCT_EXPORT_METHOD(incrementCounter:
|
|||
|
||||
#else
|
||||
@implementation RNFirebasePerformance
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#import "RNFirebaseRemoteConfig.h"
|
||||
|
||||
#import <React/RCTConvert.h>
|
||||
|
||||
#if __has_include(<FirebaseRemoteConfig/FirebaseRemoteConfig.h>)
|
||||
#import "FirebaseRemoteConfig/FirebaseRemoteConfig.h"
|
||||
#import <React/RCTConvert.h>
|
||||
|
||||
NSString *convertFIRRemoteConfigFetchStatusToNSString(FIRRemoteConfigFetchStatus value)
|
||||
{
|
||||
|
@ -52,21 +51,13 @@ NSDictionary *convertFIRRemoteConfigValueToNSDictionary(FIRRemoteConfigValue *va
|
|||
|
||||
RCT_EXPORT_MODULE(RNFirebaseRemoteConfig);
|
||||
|
||||
- (id)init
|
||||
{
|
||||
if (self = [super init]) {
|
||||
_remoteConfig = [FIRRemoteConfig remoteConfig];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(enableDeveloperMode) {
|
||||
FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
|
||||
self.remoteConfig.configSettings = remoteConfigSettings;
|
||||
[FIRRemoteConfig remoteConfig].configSettings = remoteConfigSettings;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(fetch:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
|
||||
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) {
|
||||
[[FIRRemoteConfig remoteConfig] fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) {
|
||||
if (error) {
|
||||
RCTLogError(@"\nError: %@", RCTJSErrorFromNSError(error));
|
||||
reject(convertFIRRemoteConfigFetchStatusToNSString(status), error.localizedDescription, error);
|
||||
|
@ -80,7 +71,7 @@ RCT_EXPORT_METHOD(fetchWithExpirationDuration:(nonnull NSNumber *)expirationDura
|
|||
resolver:(RCTPromiseResolveBlock)resolve
|
||||
rejecter:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
[self.remoteConfig fetchWithExpirationDuration:expirationDuration.doubleValue completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) {
|
||||
[[FIRRemoteConfig remoteConfig] fetchWithExpirationDuration:expirationDuration.doubleValue completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) {
|
||||
if (error) {
|
||||
RCTLogError(@"\nError: %@", RCTJSErrorFromNSError(error));
|
||||
reject(convertFIRRemoteConfigFetchStatusToNSString(status), error.localizedDescription, error);
|
||||
|
@ -93,7 +84,7 @@ RCT_EXPORT_METHOD(fetchWithExpirationDuration:(nonnull NSNumber *)expirationDura
|
|||
RCT_EXPORT_METHOD(activateFetched:(RCTPromiseResolveBlock)resolve
|
||||
rejecter:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
BOOL status = [self.remoteConfig activateFetched];
|
||||
BOOL status = [[FIRRemoteConfig remoteConfig] activateFetched];
|
||||
resolve(@(status));
|
||||
}
|
||||
|
||||
|
@ -101,7 +92,7 @@ RCT_EXPORT_METHOD(getValue:(NSString *)key
|
|||
resolver:(RCTPromiseResolveBlock)resolve
|
||||
rejecter:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
FIRRemoteConfigValue *value = [self.remoteConfig configValueForKey:key];
|
||||
FIRRemoteConfigValue *value = [[FIRRemoteConfig remoteConfig] configValueForKey:key];
|
||||
resolve(convertFIRRemoteConfigValueToNSDictionary(value));
|
||||
}
|
||||
|
||||
|
@ -111,7 +102,7 @@ RCT_EXPORT_METHOD(getValues:(NSArray *)keys
|
|||
{
|
||||
NSMutableArray *valuesArray = [[NSMutableArray alloc] init];
|
||||
for (NSString *key in keys) {
|
||||
FIRRemoteConfigValue *value = [self.remoteConfig configValueForKey:key];
|
||||
FIRRemoteConfigValue *value = [[FIRRemoteConfig remoteConfig] configValueForKey:key];
|
||||
[valuesArray addObject:convertFIRRemoteConfigValueToNSDictionary(value)];
|
||||
}
|
||||
resolve(valuesArray);
|
||||
|
@ -121,7 +112,7 @@ RCT_EXPORT_METHOD(getKeysByPrefix:(NSString *)prefix
|
|||
resolver:(RCTPromiseResolveBlock)resolve
|
||||
rejecter:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
NSSet *keys = [self.remoteConfig keysWithPrefix:prefix];
|
||||
NSSet *keys = [[FIRRemoteConfig remoteConfig] keysWithPrefix:prefix];
|
||||
NSMutableArray *keysArray = [[NSMutableArray alloc] init];
|
||||
for (NSString *key in keys) {
|
||||
[keysArray addObject:key];
|
||||
|
@ -130,18 +121,16 @@ RCT_EXPORT_METHOD(getKeysByPrefix:(NSString *)prefix
|
|||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setDefaults:(NSDictionary *)defaults) {
|
||||
[self.remoteConfig setDefaults:defaults];
|
||||
[[FIRRemoteConfig remoteConfig] setDefaults:defaults];
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setDefaultsFromResource:(NSString *)fileName) {
|
||||
[self.remoteConfig setDefaultsFromPlistFileName:fileName];
|
||||
[[FIRRemoteConfig remoteConfig] setDefaultsFromPlistFileName:fileName];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
@implementation RNFirebaseRemoteConfig
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -1,13 +1,20 @@
|
|||
#ifndef RNFirebaseStorage_h
|
||||
#define RNFirebaseStorage_h
|
||||
|
||||
#import <React/RCTEventEmitter.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
|
||||
@interface RNFirebaseStorage : RCTEventEmitter <RCTBridgeModule> {
|
||||
#if __has_include(<FirebaseStorage/FIRStorage.h>)
|
||||
#import <React/RCTEventEmitter.h>
|
||||
|
||||
@interface RNFirebaseStorage : RCTEventEmitter<RCTBridgeModule> {
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
@interface RNFirebaseStorage : NSObject<RCTBridgeModule>
|
||||
@end
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -16,7 +16,7 @@ RCT_EXPORT_MODULE(RNFirebaseStorage);
|
|||
|
||||
/**
|
||||
Reject a promise with a storage exception
|
||||
|
||||
|
||||
@param reject RCTPromiseRejectBlock
|
||||
@param error NSError
|
||||
*/
|
||||
|
@ -93,7 +93,7 @@ RCT_EXPORT_MODULE(RNFirebaseStorage);
|
|||
|
||||
/**
|
||||
delete
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#delete
|
||||
@param NSString path
|
||||
*/
|
||||
|
@ -111,7 +111,7 @@ RCT_EXPORT_METHOD(delete: (NSString *) path resolver:(RCTPromiseResolveBlock)res
|
|||
|
||||
/**
|
||||
getDownloadURL
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL
|
||||
@param NSString path
|
||||
*/
|
||||
|
@ -129,7 +129,7 @@ RCT_EXPORT_METHOD(getDownloadURL: (NSString *) path resolver:(RCTPromiseResolveB
|
|||
|
||||
/**
|
||||
getMetadata
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getMetadata
|
||||
@param NSString path
|
||||
*/
|
||||
|
@ -147,7 +147,7 @@ RCT_EXPORT_METHOD(getMetadata: (NSString *) path resolver:(RCTPromiseResolveBloc
|
|||
|
||||
/**
|
||||
updateMetadata
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#updateMetadata
|
||||
@param NSString path
|
||||
@param NSDictionary metadata
|
||||
|
@ -167,7 +167,7 @@ RCT_EXPORT_METHOD(updateMetadata: (NSString *) path metadata:(NSDictionary *) me
|
|||
|
||||
/**
|
||||
downloadFile
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#downloadFile
|
||||
@param NSString path
|
||||
@param NSString localPath
|
||||
|
@ -214,7 +214,7 @@ RCT_EXPORT_METHOD(downloadFile: (NSString *) path localPath:(NSString *) localPa
|
|||
|
||||
/**
|
||||
setMaxDownloadRetryTime
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#setMaxDownloadRetryTime
|
||||
@param NSNumber milliseconds
|
||||
*/
|
||||
|
@ -224,7 +224,7 @@ RCT_EXPORT_METHOD(setMaxDownloadRetryTime:(NSNumber *) milliseconds) {
|
|||
|
||||
/**
|
||||
setMaxOperationRetryTime
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#setMaxOperationRetryTime
|
||||
@param NSNumber milliseconds
|
||||
*/
|
||||
|
@ -234,7 +234,7 @@ RCT_EXPORT_METHOD(setMaxOperationRetryTime:(NSNumber *) milliseconds) {
|
|||
|
||||
/**
|
||||
setMaxUploadRetryTime
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Storage#setMaxUploadRetryTime
|
||||
*/
|
||||
RCT_EXPORT_METHOD(setMaxUploadRetryTime:(NSNumber *) milliseconds) {
|
||||
|
@ -243,7 +243,7 @@ RCT_EXPORT_METHOD(setMaxUploadRetryTime:(NSNumber *) milliseconds) {
|
|||
|
||||
/**
|
||||
putFile
|
||||
|
||||
|
||||
@url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#putFile
|
||||
@param NSString path
|
||||
@param NSString localPath
|
||||
|
@ -450,7 +450,5 @@ RCT_EXPORT_METHOD(putFile:(NSString *) path localPath:(NSString *)localPath meta
|
|||
|
||||
#else
|
||||
@implementation RNFirebaseStorage
|
||||
RCT_EXPORT_MODULE();
|
||||
RCT_EXPORT_METHOD(nativeSDKMissing) {}
|
||||
@end
|
||||
#endif
|
||||
|
|
|
@ -10,14 +10,13 @@ import NativeExpress from './NativeExpress';
|
|||
import { Base } from './../base';
|
||||
|
||||
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
||||
const FirebaseAdMobEvt = new NativeEventEmitter(FirebaseAdMob);
|
||||
const FirebaseAdMobEvt = FirebaseAdMob && new NativeEventEmitter(FirebaseAdMob);
|
||||
|
||||
export default class Admob extends Base {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
console.log('>>', FirebaseAdMob)
|
||||
if (FirebaseAdMob.nativeSDKMissing) {
|
||||
if (!FirebaseAdMob) {
|
||||
return nativeSDKMissing('admob');
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ const ReservedEventNames = [
|
|||
|
||||
export default class Analytics {
|
||||
constructor() {
|
||||
if (FirebaseAnalytics.nativeSDKMissing) {
|
||||
if (!FirebaseAnalytics) {
|
||||
return nativeSDKMissing('analytics');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ import TwitterAuthProvider from './providers/Twitter';
|
|||
import GithubAuthProvider from './providers/Github';
|
||||
|
||||
const FirebaseAuth = NativeModules.RNFirebaseAuth;
|
||||
const FirebaseAuthEvt = new NativeEventEmitter(FirebaseAuth);
|
||||
const FirebaseAuthEvt = FirebaseAuth && new NativeEventEmitter(FirebaseAuth);
|
||||
|
||||
export default class Auth extends Base {
|
||||
_user: User | null;
|
||||
|
@ -22,7 +22,7 @@ export default class Auth extends Base {
|
|||
|
||||
constructor(firebase: Object, options: Object = {}) {
|
||||
super(firebase, options);
|
||||
if (FirebaseAuth.nativeSDKMissing) {
|
||||
if (!FirebaseAuth) {
|
||||
return nativeSDKMissing('auth');
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ type RemoteConfigOptions = {}
|
|||
export default class RemoteConfig extends Base {
|
||||
constructor(firebase: Object, options: RemoteConfigOptions = {}) {
|
||||
super(firebase, options);
|
||||
if (FirebaseRemoteConfig.nativeSDKMissing) {
|
||||
if (!FirebaseRemoteConfig) {
|
||||
return nativeSDKMissing('remote config');
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ const FirebaseCrash = NativeModules.RNFirebaseCrash;
|
|||
|
||||
export default class Crash {
|
||||
constructor() {
|
||||
if (FirebaseCrash.nativeSDKMissing) {
|
||||
if (!FirebaseCrash) {
|
||||
return nativeSDKMissing('crash');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import TransactionHandler from './transaction';
|
|||
import { promisify, nativeSDKMissing } from './../../utils';
|
||||
|
||||
const FirebaseDatabase = NativeModules.RNFirebaseDatabase;
|
||||
const FirebaseDatabaseEvt = new NativeEventEmitter(FirebaseDatabase);
|
||||
const FirebaseDatabaseEvt = FirebaseDatabase && new NativeEventEmitter(FirebaseDatabase);
|
||||
|
||||
/**
|
||||
* @class Database
|
||||
|
@ -19,7 +19,7 @@ const FirebaseDatabaseEvt = new NativeEventEmitter(FirebaseDatabase);
|
|||
export default class Database extends Base {
|
||||
constructor(firebase: Object, options: Object = {}) {
|
||||
super(firebase, options);
|
||||
if (FirebaseDatabase.nativeSDKMissing) {
|
||||
if (!FirebaseDatabase) {
|
||||
return nativeSDKMissing('database');
|
||||
}
|
||||
|
||||
|
@ -211,7 +211,7 @@ export default class Database extends Base {
|
|||
}
|
||||
|
||||
export const statics = {
|
||||
ServerValue: {
|
||||
ServerValue: FirebaseDatabase ? {
|
||||
TIMESTAMP: FirebaseDatabase.serverValueTimestamp || { '.sv': 'timestamp' },
|
||||
},
|
||||
} : {},
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@ import { nativeSDKMissing } from './../../utils';
|
|||
import RemoteMessage from './RemoteMessage';
|
||||
|
||||
const FirebaseMessaging = NativeModules.RNFirebaseMessaging;
|
||||
const FirebaseMessagingEvt = new NativeEventEmitter(FirebaseMessaging);
|
||||
const FirebaseMessagingEvt = FirebaseMessaging && new NativeEventEmitter(FirebaseMessaging);
|
||||
|
||||
const EVENT_TYPE = {
|
||||
RefreshToken: 'messaging_token_refreshed',
|
||||
|
@ -77,7 +77,7 @@ function finish(data) {
|
|||
export default class Messaging extends Base {
|
||||
constructor(firebase, options = {}) {
|
||||
super(firebase, options);
|
||||
if (FirebaseMessaging.nativeSDKMissing) {
|
||||
if (!FirebaseMessaging) {
|
||||
return nativeSDKMissing('messaging');
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ const FirebasePerformance = NativeModules.RNFirebasePerformance;
|
|||
|
||||
export default class PerformanceMonitoring {
|
||||
constructor() {
|
||||
if (FirebasePerformance.nativeSDKMissing) {
|
||||
if (!FirebasePerformance) {
|
||||
return nativeSDKMissing('perf');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import { nativeSDKMissing } from './../../utils';
|
|||
import StorageRef from './reference';
|
||||
|
||||
const FirebaseStorage = NativeModules.RNFirebaseStorage;
|
||||
const FirebaseStorageEvt = new NativeEventEmitter(FirebaseStorage);
|
||||
const FirebaseStorageEvt = FirebaseStorage && new NativeEventEmitter(FirebaseStorage);
|
||||
|
||||
type StorageOptionsType = {
|
||||
storageBucket?: ?string,
|
||||
|
@ -20,7 +20,7 @@ export default class Storage extends Base {
|
|||
*/
|
||||
constructor(firebase: Object, options: StorageOptionsType = {}) {
|
||||
super(firebase, options);
|
||||
if (FirebaseStorage.nativeSDKMissing) {
|
||||
if (!FirebaseStorage) {
|
||||
return nativeSDKMissing('storage');
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ export const statics = {
|
|||
CANCELLED: 'cancelled',
|
||||
ERROR: 'error',
|
||||
},
|
||||
Native: {
|
||||
Native: FirebaseStorage ? {
|
||||
MAIN_BUNDLE_PATH: FirebaseStorage.MAIN_BUNDLE_PATH,
|
||||
CACHES_DIRECTORY_PATH: FirebaseStorage.CACHES_DIRECTORY_PATH,
|
||||
DOCUMENT_DIRECTORY_PATH: FirebaseStorage.DOCUMENT_DIRECTORY_PATH,
|
||||
|
@ -158,6 +158,5 @@ export const statics = {
|
|||
LIBRARY_DIRECTORY_PATH: FirebaseStorage.LIBRARY_DIRECTORY_PATH,
|
||||
FILETYPE_REGULAR: FirebaseStorage.FILETYPE_REGULAR,
|
||||
FILETYPE_DIRECTORY: FirebaseStorage.FILETYPE_DIRECTORY,
|
||||
},
|
||||
} : {},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import { Banner } from './../firebase/modules/admob';
|
||||
import { View } from 'react-native';
|
||||
import fb from './firebase';
|
||||
const firebase = fb.native;
|
||||
const Banner = firebase.admob.Banner;
|
||||
const NativeExpress = firebase.admob.NativeExpress;
|
||||
|
||||
import CoreContainer from './containers/CoreContainer';
|
||||
import setupStore from './store/setup';
|
||||
|
@ -52,6 +55,14 @@ function bootstrap() {
|
|||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<View>
|
||||
<NativeExpress size="320x250" onAdLoaded={(props) => {
|
||||
console.log('ad', props)
|
||||
}} />
|
||||
</View>
|
||||
);
|
||||
|
||||
// return <Banner style={{ width: 100, height: 100, backgroundColor: 'pink'}} />;
|
||||
return (
|
||||
<Provider store={this.state.store}>
|
||||
|
|
Loading…
Reference in New Issue