react-native-firebase/ios/RNFirebase/RNFirebase.m

59 lines
1.8 KiB
Mathematica
Raw Normal View History

2017-03-09 15:26:28 +00:00
#import "RNFirebase.h"
#import "FirebaseCore/FirebaseCore.h"
2017-03-09 15:26:28 +00:00
@implementation RNFirebase
RCT_EXPORT_MODULE(RNFirebase);
2017-03-09 15:26:28 +00:00
- (id)init {
2017-03-09 15:26:28 +00:00
self = [super init];
if (self != nil) {
NSLog(@"Setting up RNFirebase instance");
}
return self;
}
- (NSArray<NSString *> *)supportedEvents {
return @[];
2017-03-09 15:26:28 +00:00
}
/**
* Initialize a new firebase app instance or ignore if currently exists.
* @return
*/
RCT_EXPORT_METHOD(initializeApp:
(NSString *) name
options:
(NSDictionary *) options
callback:
(RCTResponseSenderBlock) callback) {
dispatch_sync(dispatch_get_main_queue(), ^{
FIRApp *existingApp = [FIRApp appNamed:name];
if (!existingApp) {
FIROptions *firOptions = [
[FIROptions alloc]
initWithGoogleAppID:[options valueForKey:@"iosAppId"]
GCMSenderID:[options valueForKey:@"messagingSenderId"]
];
firOptions.APIKey = [options valueForKey:@"apiKey"];
firOptions.projectID = [options valueForKey:@"projectId"];
firOptions.clientID = [options valueForKey:@"iosClientId"];
firOptions.trackingID = [options valueForKey:@"trackingId"];
firOptions.databaseURL = [options valueForKey:@"databaseURL"];
firOptions.storageBucket = [options valueForKey:@"storageBucket"];
firOptions.androidClientID = [options valueForKey:@"androidClientId"];
firOptions.deepLinkURLScheme = [options valueForKey:@"deepLinkURLScheme"];
firOptions.bundleID = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"];
[FIRApp configureWithName:name options:firOptions];
}
// todo expand on callback result
callback(@[[NSNull null], @{@"result": @"success"}]);
});
}
@end