diff --git a/ios/RNFirebase/RNFirebase.h b/ios/RNFirebase/RNFirebase.h index aa6d128d..ea11a6eb 100644 --- a/ios/RNFirebase/RNFirebase.h +++ b/ios/RNFirebase/RNFirebase.h @@ -1,8 +1,6 @@ #ifndef RNFirebase_h #define RNFirebase_h -#import -#import #import #import diff --git a/ios/RNFirebase/RNFirebase.m b/ios/RNFirebase/RNFirebase.m index 1d7cfdf4..803a283c 100644 --- a/ios/RNFirebase/RNFirebase.m +++ b/ios/RNFirebase/RNFirebase.m @@ -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() - dispatch_once(&onceToken, ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:kRNFirebaseInitialized object:nil]; - }); -#endif -} - - (NSArray *)supportedEvents { - return @[INITIALIZED_EVENT]; + return @[]; } -@end \ No newline at end of file +@end diff --git a/ios/RNFirebase/RNFirebaseAdMob.m b/ios/RNFirebase/RNFirebaseAdMob.m index a00dbf75..f3ac8f8c 100644 --- a/ios/RNFirebase/RNFirebaseAdMob.m +++ b/ios/RNFirebase/RNFirebaseAdMob.m @@ -4,8 +4,7 @@ RCT_EXPORT_MODULE(); RCT_EXPORT_METHOD(log:(NSString *)message) { - + } -RCT_EXPORT_METHOD(nativeSDKMissing) {} @end diff --git a/ios/RNFirebase/RNFirebaseAnalytics.m b/ios/RNFirebase/RNFirebaseAnalytics.m index 6a9ac1c4..d3e62764 100644 --- a/ios/RNFirebase/RNFirebaseAnalytics.m +++ b/ios/RNFirebase/RNFirebaseAnalytics.m @@ -1,4 +1,3 @@ -#import "RNFirebase.h" #import "RNFirebaseAnalytics.h" #if __has_include() @@ -35,7 +34,5 @@ RCT_EXPORT_METHOD(setSessionTimeoutDuration:(nonnull NSNumber *) milliseconds) { #else @implementation RNFirebaseAnalytics -RCT_EXPORT_MODULE(); -RCT_EXPORT_METHOD(nativeSDKMissing) {} @end #endif diff --git a/ios/RNFirebase/RNFirebaseAuth.h b/ios/RNFirebase/RNFirebaseAuth.h index 0a42b511..1c991a7f 100644 --- a/ios/RNFirebase/RNFirebaseAuth.h +++ b/ios/RNFirebase/RNFirebaseAuth.h @@ -1,11 +1,11 @@ #ifndef RNFirebaseAuth_h #define RNFirebaseAuth_h -#import #import #if __has_include() #import "Firebase.h" +#import @interface RNFirebaseAuth : RCTEventEmitter { FIRAuthStateDidChangeListenerHandle authListenerHandle; @@ -15,7 +15,7 @@ @end #else -@interface RNFirebaseAuth : RCTEventEmitter { +@interface RNFirebaseAuth : NSObject { } @end #endif diff --git a/ios/RNFirebase/RNFirebaseAuth.m b/ios/RNFirebase/RNFirebaseAuth.m index 13b1c25d..ecd04aab 100644 --- a/ios/RNFirebase/RNFirebaseAuth.m +++ b/ios/RNFirebase/RNFirebaseAuth.m @@ -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 *) convertProviderData:(NSArray > *) providerData { NSMutableArray *output = [NSMutableArray array]; - + for (id 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 diff --git a/ios/RNFirebase/RNFirebaseCrash.m b/ios/RNFirebase/RNFirebaseCrash.m index 76f4e2ba..763818a0 100644 --- a/ios/RNFirebase/RNFirebaseCrash.m +++ b/ios/RNFirebase/RNFirebaseCrash.m @@ -23,7 +23,5 @@ RCT_EXPORT_METHOD(report:(NSString *) message) { #else @implementation RNFirebaseCrash -RCT_EXPORT_MODULE(); -RCT_EXPORT_METHOD(nativeSDKMissing) {} @end -#endif \ No newline at end of file +#endif diff --git a/ios/RNFirebase/RNFirebaseDatabase.h b/ios/RNFirebase/RNFirebaseDatabase.h index d889e55e..3a0abfa1 100644 --- a/ios/RNFirebase/RNFirebaseDatabase.h +++ b/ios/RNFirebase/RNFirebaseDatabase.h @@ -1,20 +1,19 @@ #ifndef RNFirebaseDatabase_h #define RNFirebaseDatabase_h -#import #import #if __has_include() -#import "Firebase.h" +#import -@interface RNFirebaseDatabase : RCTEventEmitter {} +@interface RNFirebaseDatabase : RCTEventEmitter {} @property NSMutableDictionary *dbReferences; @property NSMutableDictionary *transactions; @property dispatch_queue_t transactionQueue; @end #else -@interface RNFirebaseDatabase : RCTEventEmitter {} +@interface RNFirebaseDatabase : NSObject {} @end #endif diff --git a/ios/RNFirebase/RNFirebaseDatabase.m b/ios/RNFirebase/RNFirebaseDatabase.m index e302a310..8a759379 100644 --- a/ios/RNFirebase/RNFirebaseDatabase.m +++ b/ios/RNFirebase/RNFirebaseDatabase.m @@ -1,7 +1,6 @@ -#import "RNFirebase.h" #import "RNFirebaseDatabase.h" #import "RNFirebaseEvents.h" - +#import "Firebase.h" #if __has_include() @@ -512,7 +511,5 @@ RCT_EXPORT_METHOD(goOnline) { #else @implementation RNFirebaseDatabase -RCT_EXPORT_MODULE(); -RCT_EXPORT_METHOD(nativeSDKMissing) {} @end #endif diff --git a/ios/RNFirebase/RNFirebaseEvents.h b/ios/RNFirebase/RNFirebaseEvents.h index b344c786..567f5cac 100644 --- a/ios/RNFirebase/RNFirebaseEvents.h +++ b/ios/RNFirebase/RNFirebaseEvents.h @@ -3,20 +3,9 @@ #import -#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"; diff --git a/ios/RNFirebase/RNFirebaseMessaging.h b/ios/RNFirebase/RNFirebaseMessaging.h index 66f16ea8..2a959333 100644 --- a/ios/RNFirebase/RNFirebaseMessaging.h +++ b/ios/RNFirebase/RNFirebaseMessaging.h @@ -1,15 +1,11 @@ #ifndef RNFirebaseMessaging_h #define RNFirebaseMessaging_h -#import #import #if __has_include() -#import "Firebase.h" #import - -#import -#import +#import @import UserNotifications; @@ -30,7 +26,7 @@ typedef void (^RCTNotificationResponseCallback)(); @end #else -@interface RNFirebaseMessaging : RCTEventEmitter +@interface RNFirebaseMessaging : NSObject @end #endif diff --git a/ios/RNFirebase/RNFirebaseMessaging.m b/ios/RNFirebase/RNFirebaseMessaging.m index 4572633f..63ebb2b6 100644 --- a/ios/RNFirebase/RNFirebaseMessaging.m +++ b/ios/RNFirebase/RNFirebaseMessaging.m @@ -1,14 +1,14 @@ #import "RNFirebaseMessaging.h" + +@import UserNotifications; +#if __has_include() #import "RNFirebaseEvents.h" +#import #import #import #import -@import UserNotifications; -#if __has_include() -#import - @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 diff --git a/ios/RNFirebase/RNFirebasePerformance.m b/ios/RNFirebase/RNFirebasePerformance.m index a9e462ea..56c8976b 100644 --- a/ios/RNFirebase/RNFirebasePerformance.m +++ b/ios/RNFirebase/RNFirebasePerformance.m @@ -49,7 +49,5 @@ RCT_EXPORT_METHOD(incrementCounter: #else @implementation RNFirebasePerformance -RCT_EXPORT_MODULE(); -RCT_EXPORT_METHOD(nativeSDKMissing) {} @end #endif diff --git a/ios/RNFirebase/RNFirebaseRemoteConfig.m b/ios/RNFirebase/RNFirebaseRemoteConfig.m index f938290e..e2e6951e 100644 --- a/ios/RNFirebase/RNFirebaseRemoteConfig.m +++ b/ios/RNFirebase/RNFirebaseRemoteConfig.m @@ -1,9 +1,8 @@ #import "RNFirebaseRemoteConfig.h" -#import - #if __has_include() #import "FirebaseRemoteConfig/FirebaseRemoteConfig.h" +#import 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 \ No newline at end of file +#endif diff --git a/ios/RNFirebase/RNFirebaseStorage.h b/ios/RNFirebase/RNFirebaseStorage.h index 3bc68273..e8af8568 100644 --- a/ios/RNFirebase/RNFirebaseStorage.h +++ b/ios/RNFirebase/RNFirebaseStorage.h @@ -1,13 +1,20 @@ #ifndef RNFirebaseStorage_h #define RNFirebaseStorage_h -#import #import -@interface RNFirebaseStorage : RCTEventEmitter { +#if __has_include() +#import + +@interface RNFirebaseStorage : RCTEventEmitter { } @end +#else +@interface RNFirebaseStorage : NSObject +@end +#endif + #endif diff --git a/ios/RNFirebase/RNFirebaseStorage.m b/ios/RNFirebase/RNFirebaseStorage.m index 1011d36e..d65d369f 100644 --- a/ios/RNFirebase/RNFirebaseStorage.m +++ b/ios/RNFirebase/RNFirebaseStorage.m @@ -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 diff --git a/lib/modules/admob/index.js b/lib/modules/admob/index.js index d5acf0d4..aa71cb89 100644 --- a/lib/modules/admob/index.js +++ b/lib/modules/admob/index.js @@ -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'); } diff --git a/lib/modules/analytics/index.js b/lib/modules/analytics/index.js index 7f7261b9..6255eaa8 100644 --- a/lib/modules/analytics/index.js +++ b/lib/modules/analytics/index.js @@ -23,7 +23,7 @@ const ReservedEventNames = [ export default class Analytics { constructor() { - if (FirebaseAnalytics.nativeSDKMissing) { + if (!FirebaseAnalytics) { return nativeSDKMissing('analytics'); } } diff --git a/lib/modules/auth/index.js b/lib/modules/auth/index.js index 289e2d20..de0f8ee9 100644 --- a/lib/modules/auth/index.js +++ b/lib/modules/auth/index.js @@ -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'); } diff --git a/lib/modules/config/index.js b/lib/modules/config/index.js index 2007c78a..6846407c 100644 --- a/lib/modules/config/index.js +++ b/lib/modules/config/index.js @@ -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'); } diff --git a/lib/modules/crash/index.js b/lib/modules/crash/index.js index abbf6073..b6f83d7b 100644 --- a/lib/modules/crash/index.js +++ b/lib/modules/crash/index.js @@ -6,7 +6,7 @@ const FirebaseCrash = NativeModules.RNFirebaseCrash; export default class Crash { constructor() { - if (FirebaseCrash.nativeSDKMissing) { + if (!FirebaseCrash) { return nativeSDKMissing('crash'); } } diff --git a/lib/modules/database/index.js b/lib/modules/database/index.js index 89041ace..ccd1df03 100644 --- a/lib/modules/database/index.js +++ b/lib/modules/database/index.js @@ -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' }, - }, + } : {}, }; diff --git a/lib/modules/messaging/index.js b/lib/modules/messaging/index.js index 15e663be..eac6cc29 100644 --- a/lib/modules/messaging/index.js +++ b/lib/modules/messaging/index.js @@ -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'); } diff --git a/lib/modules/perf/index.js b/lib/modules/perf/index.js index 6db70c63..910f4438 100644 --- a/lib/modules/perf/index.js +++ b/lib/modules/perf/index.js @@ -7,7 +7,7 @@ const FirebasePerformance = NativeModules.RNFirebasePerformance; export default class PerformanceMonitoring { constructor() { - if (FirebasePerformance.nativeSDKMissing) { + if (!FirebasePerformance) { return nativeSDKMissing('perf'); } } diff --git a/lib/modules/storage/index.js b/lib/modules/storage/index.js index 87a931d4..98013f22 100644 --- a/lib/modules/storage/index.js +++ b/lib/modules/storage/index.js @@ -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, - }, + } : {}, }; - diff --git a/tests/firebase/.gitkeep b/tests/firebase/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/src/main.js b/tests/src/main.js index 039e3c54..a6a3b085 100644 --- a/tests/src/main.js +++ b/tests/src/main.js @@ -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 ( + + { + console.log('ad', props) + }} /> + + ); + // return ; return (