diff --git a/ios/RNFirebase/RNFirebase.m b/ios/RNFirebase/RNFirebase.m index 55304956..1bbe5f89 100644 --- a/ios/RNFirebase/RNFirebase.m +++ b/ios/RNFirebase/RNFirebase.m @@ -1,5 +1,5 @@ #import "RNFirebase.h" -#import "FirebaseCore/FirebaseCore.h" +#import @implementation RNFirebase RCT_EXPORT_MODULE(RNFirebase); diff --git a/ios/RNFirebase/admob/BannerComponent.h b/ios/RNFirebase/admob/BannerComponent.h index cb0e9489..378002fa 100644 --- a/ios/RNFirebase/admob/BannerComponent.h +++ b/ios/RNFirebase/admob/BannerComponent.h @@ -3,8 +3,8 @@ #if __has_include() -#import "GoogleMobileAds/GADBannerView.h" -#import "GoogleMobileAds/GADBannerViewDelegate.h" +#import +#import @interface BannerComponent : UIView diff --git a/ios/RNFirebase/admob/BannerComponent.m b/ios/RNFirebase/admob/BannerComponent.m index 12e6b72d..15b81073 100644 --- a/ios/RNFirebase/admob/BannerComponent.m +++ b/ios/RNFirebase/admob/BannerComponent.m @@ -1,6 +1,6 @@ #import "BannerComponent.h" #import "RNFirebaseAdMob.h" -#import "React/UIView+React.h" +#import @implementation BannerComponent @@ -86,4 +86,4 @@ #endif -@end \ No newline at end of file +@end diff --git a/ios/RNFirebase/admob/NativeExpressComponent.h b/ios/RNFirebase/admob/NativeExpressComponent.h index f88f615b..2e9a9ccd 100644 --- a/ios/RNFirebase/admob/NativeExpressComponent.h +++ b/ios/RNFirebase/admob/NativeExpressComponent.h @@ -3,8 +3,8 @@ #if __has_include() -#import "GoogleMobileAds/GADNativeExpressAdView.h" -#import "GoogleMobileAds/GADVideoControllerDelegate.h" +#import +#import @interface NativeExpressComponent : UIView diff --git a/ios/RNFirebase/admob/NativeExpressComponent.m b/ios/RNFirebase/admob/NativeExpressComponent.m index 1d1c7ed1..f5dfd91a 100644 --- a/ios/RNFirebase/admob/NativeExpressComponent.m +++ b/ios/RNFirebase/admob/NativeExpressComponent.m @@ -1,6 +1,6 @@ #import "NativeExpressComponent.h" #import "RNFirebaseAdMob.h" -#import "React/UIView+React.h" +#import @implementation NativeExpressComponent @@ -119,4 +119,4 @@ #endif -@end \ No newline at end of file +@end diff --git a/ios/RNFirebase/admob/RNFirebaseAdMob.h b/ios/RNFirebase/admob/RNFirebaseAdMob.h index 91e73cf9..3b83dff5 100644 --- a/ios/RNFirebase/admob/RNFirebaseAdMob.h +++ b/ios/RNFirebase/admob/RNFirebaseAdMob.h @@ -3,13 +3,13 @@ #import #if __has_include() -#import "Firebase.h" +#import #import "RNFirebaseEvents.h" #import -#import "React/RCTEventEmitter.h" -#import "GoogleMobileAds/GADInterstitialDelegate.h" -#import "GoogleMobileAds/GADRewardBasedVideoAdDelegate.h" -#import "GoogleMobileAds/GADAdDelegate.h" +#import +#import +#import +#import @interface RNFirebaseAdMob : RCTEventEmitter diff --git a/ios/RNFirebase/admob/RNFirebaseAdMobInterstitial.h b/ios/RNFirebase/admob/RNFirebaseAdMobInterstitial.h index e8fa0863..66f01629 100644 --- a/ios/RNFirebase/admob/RNFirebaseAdMobInterstitial.h +++ b/ios/RNFirebase/admob/RNFirebaseAdMobInterstitial.h @@ -1,14 +1,14 @@ #ifndef RNFirebaseAdMobInterstitial_h #define RNFirebaseAdMobInterstitial_h -#import "React/RCTBridgeModule.h" +#import #import "RNFirebaseEvents.h" #if __has_include() -#import "GoogleMobileAds/GADInterstitialDelegate.h" -#import "GoogleMobileAds/GADInterstitial.h" -#import "React/RCTEventEmitter.h" +#import +#import +#import #import "RNFirebaseAdMob.h" @interface RNFirebaseAdMobInterstitial : NSObject @@ -31,4 +31,3 @@ #endif #endif - diff --git a/ios/RNFirebase/admob/RNFirebaseAdMobRewardedVideo.h b/ios/RNFirebase/admob/RNFirebaseAdMobRewardedVideo.h index 1fd60155..2e90f637 100644 --- a/ios/RNFirebase/admob/RNFirebaseAdMobRewardedVideo.h +++ b/ios/RNFirebase/admob/RNFirebaseAdMobRewardedVideo.h @@ -6,8 +6,8 @@ #if __has_include() -#import "GoogleMobileAds/GADRewardBasedVideoAdDelegate.h" -#import "GoogleMobileAds/GADRewardBasedVideoAd.h" +#import +#import #import #import "RNFirebaseAdMob.h" @@ -31,4 +31,3 @@ #endif #endif - diff --git a/ios/RNFirebase/auth/RNFirebaseAuth.h b/ios/RNFirebase/auth/RNFirebaseAuth.h index e1ddb995..802e2a1a 100644 --- a/ios/RNFirebase/auth/RNFirebaseAuth.h +++ b/ios/RNFirebase/auth/RNFirebaseAuth.h @@ -3,7 +3,7 @@ #import #if __has_include() -#import "Firebase.h" +#import #import #import diff --git a/ios/RNFirebase/config/RNFirebaseConfig.m b/ios/RNFirebase/config/RNFirebaseConfig.m new file mode 100644 index 00000000..0b3cf6e1 --- /dev/null +++ b/ios/RNFirebase/config/RNFirebaseConfig.m @@ -0,0 +1,136 @@ +#import "RNFirebaseRemoteConfig.h" + +#if __has_include() + +#import +#import +#import + +NSString *convertFIRRemoteConfigFetchStatusToNSString(FIRRemoteConfigFetchStatus value) { + switch (value) { + case FIRRemoteConfigFetchStatusNoFetchYet: + return @"config/no_fetch_yet"; + case FIRRemoteConfigFetchStatusSuccess: + return @"config/success"; + case FIRRemoteConfigFetchStatusThrottled: + return @"config/throttled"; + default: + return @"config/failure"; + } +} + +NSString *convertFIRRemoteConfigSourceToNSString(FIRRemoteConfigSource value) { + switch (value) { + case FIRRemoteConfigSourceDefault: + return @"default"; + case FIRRemoteConfigSourceRemote: + return @"remote"; + default: + return @"static"; + } +} + +NSDictionary *convertFIRRemoteConfigValueToNSDictionary(FIRRemoteConfigValue *value) { + return @{@"stringValue": value.stringValue ?: [NSNull null], @"numberValue": value.numberValue ?: [NSNull null], @"dataValue": value.dataValue ? [value.dataValue base64EncodedStringWithOptions:0] : [NSNull null], @"boolValue": @(value.boolValue), @"source": convertFIRRemoteConfigSourceToNSString(value.source)}; +} + +@implementation RNFirebaseRemoteConfig + +RCT_EXPORT_MODULE(RNFirebaseRemoteConfig); + +RCT_EXPORT_METHOD(enableDeveloperMode) { + FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES]; + [FIRRemoteConfig remoteConfig].configSettings = remoteConfigSettings; +} + +RCT_EXPORT_METHOD(fetch: + (RCTPromiseResolveBlock) resolve + rejecter: + (RCTPromiseRejectBlock) reject) { + [[FIRRemoteConfig remoteConfig] fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) { + if (error) { + RCTLogError(@"\nError: %@", RCTJSErrorFromNSError(error)); + reject(convertFIRRemoteConfigFetchStatusToNSString(status), error.localizedDescription, error); + } else { + resolve(convertFIRRemoteConfigFetchStatusToNSString(status)); + } + }]; +} + +RCT_EXPORT_METHOD(fetchWithExpirationDuration: + (nonnull + NSNumber *)expirationDuration + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) { + [[FIRRemoteConfig remoteConfig] fetchWithExpirationDuration:expirationDuration.doubleValue completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *__nullable error) { + if (error) { + RCTLogError(@"\nError: %@", RCTJSErrorFromNSError(error)); + reject(convertFIRRemoteConfigFetchStatusToNSString(status), error.localizedDescription, error); + } else { + resolve(convertFIRRemoteConfigFetchStatusToNSString(status)); + } + }]; +} + +RCT_EXPORT_METHOD(activateFetched: + (RCTPromiseResolveBlock) resolve + rejecter: + (RCTPromiseRejectBlock) reject) { + BOOL status = [[FIRRemoteConfig remoteConfig] activateFetched]; + resolve(@(status)); +} + +RCT_EXPORT_METHOD(getValue: + (NSString *) key + resolver: + (RCTPromiseResolveBlock) resolve + rejecter: + (RCTPromiseRejectBlock) reject) { + FIRRemoteConfigValue *value = [[FIRRemoteConfig remoteConfig] configValueForKey:key]; + resolve(convertFIRRemoteConfigValueToNSDictionary(value)); +} + +RCT_EXPORT_METHOD(getValues: + (NSArray *) keys + resolver: + (RCTPromiseResolveBlock) resolve + rejecter: + (RCTPromiseRejectBlock) reject) { + NSMutableArray *valuesArray = [[NSMutableArray alloc] init]; + for (NSString *key in keys) { + FIRRemoteConfigValue *value = [[FIRRemoteConfig remoteConfig] configValueForKey:key]; + [valuesArray addObject:convertFIRRemoteConfigValueToNSDictionary(value)]; + } + resolve(valuesArray); +} + +RCT_EXPORT_METHOD(getKeysByPrefix: + (NSString *) prefix + resolver: + (RCTPromiseResolveBlock) resolve + rejecter: + (RCTPromiseRejectBlock) reject) { + NSSet *keys = [[FIRRemoteConfig remoteConfig] keysWithPrefix:prefix]; + NSMutableArray *keysArray = [[NSMutableArray alloc] init]; + for (NSString *key in keys) { + [keysArray addObject:key]; + } + resolve(keysArray); +} + +RCT_EXPORT_METHOD(setDefaults: + (NSDictionary *) defaults) { + [[FIRRemoteConfig remoteConfig] setDefaults:defaults]; +} + +RCT_EXPORT_METHOD(setDefaultsFromResource: + (NSString *) fileName) { + [[FIRRemoteConfig remoteConfig] setDefaultsFromPlistFileName:fileName]; +} + +@end + +#else +@implementation RNFirebaseRemoteConfig +@end +#endif diff --git a/ios/RNFirebase/config/RNFirebaseRemoteConfig.m b/ios/RNFirebase/config/RNFirebaseRemoteConfig.m index 7464a40f..0b3cf6e1 100644 --- a/ios/RNFirebase/config/RNFirebaseRemoteConfig.m +++ b/ios/RNFirebase/config/RNFirebaseRemoteConfig.m @@ -2,7 +2,7 @@ #if __has_include() -#import "FirebaseRemoteConfig/FirebaseRemoteConfig.h" +#import #import #import diff --git a/ios/RNFirebase/crash/RNFirebaseCrash.m b/ios/RNFirebase/crash/RNFirebaseCrash.m index 8e64d7f0..c34b2eab 100644 --- a/ios/RNFirebase/crash/RNFirebaseCrash.m +++ b/ios/RNFirebase/crash/RNFirebaseCrash.m @@ -1,7 +1,7 @@ #import "RNFirebaseCrash.h" #if __has_include() -#import "FirebaseCrash/FIRCrashLog.h" +#import @implementation RNFirebaseCrash RCT_EXPORT_MODULE(); diff --git a/ios/RNFirebase/database/RNFirebaseDatabase.m b/ios/RNFirebase/database/RNFirebaseDatabase.m index cd9f8de5..21b538f6 100644 --- a/ios/RNFirebase/database/RNFirebaseDatabase.m +++ b/ios/RNFirebase/database/RNFirebaseDatabase.m @@ -2,6 +2,7 @@ #if __has_include() +#import #import "RNFirebaseDatabaseReference.h" #import "RNFirebaseEvents.h" diff --git a/ios/RNFirebase/database/RNFirebaseDatabaseReference.h b/ios/RNFirebase/database/RNFirebaseDatabaseReference.h index f914a2f9..a9bdebef 100644 --- a/ios/RNFirebase/database/RNFirebaseDatabaseReference.h +++ b/ios/RNFirebase/database/RNFirebaseDatabaseReference.h @@ -7,7 +7,6 @@ #import "RNFirebaseDatabase.h" #import "RNFirebaseEvents.h" #import -#import "Firebase.h" @interface RNFirebaseDatabaseReference : NSObject @property RCTEventEmitter *emitter; diff --git a/ios/RNFirebase/storage/RNFirebaseStorage.m b/ios/RNFirebase/storage/RNFirebaseStorage.m index 77e6f780..95852902 100644 --- a/ios/RNFirebase/storage/RNFirebaseStorage.m +++ b/ios/RNFirebase/storage/RNFirebaseStorage.m @@ -4,7 +4,7 @@ #import "RNFirebaseEvents.h" #import -#import "Firebase.h" +#import @implementation RNFirebaseStorage