@@ -168,14 +168,52 @@ - (void)invalidate {
168168#pragma mark Firebase App Methods
169169
170170RCT_EXPORT_METHOD (initializeApp
171- : (FIROptions *)firOptions appConfig
171+ : (NSDictionary *)options appConfig
172172 : (NSDictionary *)appConfig resolver
173173 : (RCTPromiseResolveBlock)resolve rejecter
174174 : (RCTPromiseRejectBlock)reject) {
175175 RCTUnsafeExecuteOnMainQueueSync (^{
176176 FIRApp *firApp;
177177 NSString *appName = [appConfig valueForKey: @" name" ];
178178
179+ NSString *appId = [options valueForKey: @" appId" ];
180+ NSString *messagingSenderId = [options valueForKey: @" messagingSenderId" ];
181+ FIROptions *firOptions = [[FIROptions alloc ] initWithGoogleAppID: appId
182+ GCMSenderID: messagingSenderId];
183+ firOptions.APIKey = [options valueForKey: @" apiKey" ];
184+ firOptions.projectID = [options valueForKey: @" projectId" ];
185+ // kFirebaseOptionsDatabaseUrl
186+ if (![[options valueForKey: @" databaseURL" ] isEqual: [NSNull null ]]) {
187+ firOptions.databaseURL = [options valueForKey: @" databaseURL" ];
188+ }
189+ // kFirebaseOptionsStorageBucket
190+ if (![[options valueForKey: @" storageBucket" ] isEqual: [NSNull null ]]) {
191+ firOptions.storageBucket = [options valueForKey: @" storageBucket" ];
192+ }
193+ // kFirebaseOptionsDeepLinkURLScheme
194+ if (![[options valueForKey: @" deepLinkURLScheme" ] isEqual: [NSNull null ]]) {
195+ firOptions.deepLinkURLScheme = [options valueForKey: @" deepLinkURLScheme" ];
196+ }
197+ // kFirebaseOptionsIosBundleId
198+ if (![[options valueForKey: @" iosBundleId" ] isEqual: [NSNull null ]]) {
199+ firOptions.bundleID = [options valueForKey: @" iosBundleId" ];
200+ }
201+ // kFirebaseOptionsIosClientId
202+ if (![[options valueForKey: @" iosClientId" ] isEqual: [NSNull null ]]) {
203+ firOptions.clientID = [options valueForKey: @" iosClientId" ];
204+ }
205+ // kFirebaseOptionsAppGroupId
206+ if (![[options valueForKey: @" appGroupId" ] isEqual: [NSNull null ]]) {
207+ firOptions.appGroupID = [options valueForKey: @" appGroupId" ];
208+ }
209+
210+ if ([options valueForKey: @" authDomain" ] != nil ) {
211+ DLog (@" RNFBAuth app: %@ customAuthDomain: %@ " , appName, [options valueForKey: @" authDomain" ]);
212+ if (customAuthDomains == nil ) {
213+ customAuthDomains = [[NSMutableDictionary alloc ] init ];
214+ }
215+ customAuthDomains[appName] = [options valueForKey: @" authDomain" ];
216+ }
179217 @try {
180218 if (!appName || [appName isEqualToString: DEFAULT_APP_DISPLAY_NAME]) {
181219 [FIRApp configureWithOptions: firOptions];
@@ -195,6 +233,13 @@ - (void)invalidate {
195233 });
196234}
197235
236+ static NSMutableDictionary <NSString *, NSString *> *customAuthDomains;
237+
238+ + (NSString *)getCustomDomain : (NSString *)appName {
239+ DLog (@" authDomains: %@ " , customAuthDomains);
240+ return customAuthDomains[appName];
241+ }
242+
198243RCT_EXPORT_METHOD (setLogLevel : (NSString *)logLevel) {
199244 int level = FIRLoggerLevelError;
200245 if ([logLevel isEqualToString: @" verbose" ]) {
0 commit comments