iOS扩展 – 致命exception:com.firebase.core默认的应用程序已被configuration

iOS扩展 – 致命exception:com.firebase.core默认的应用程序已被configuration。

我在viewDidLoad()方法中运行Fir.configure(),一些事件传递给Firebase。

有人可以帮我解决这个问题..谷歌不够友好。

PS:是的,我在Firebase控制台中创build了第二个.plist和第二个应用程序。 PPS:是的,我为每个GoogleServices plistselect了正确的目标

我正在寻求解决scheme..

我不知道你是否还在寻找一个解决scheme,但我有同样的问题,使用扩展名的Firebase。

我结束了这样做:

if(FIRApp.defaultApp() == nil){ FIRApp.configure() } 

这将检查应用程序是否已经configuration,以便没有崩溃。

答案是例外。 你正在configuration应用两次。 你有几个select来解决这个问题:

1)在您的应用程序委托中configuration您的应用程序一次。

2)将configuration与取消configuration相匹配。 在FIRApp上有一个方法可以让你取消configuration(实际的名字让我感到失望)。

我也在今天的扩展代码中得到了这个问题。 我解决了如果您的Firebase实例已经configuration,

 // define in your constants or somewhere NSString* const UNIQUE_FIREBASE_INSTANCE_IDENTIFIER_WIDGET = @"Widget_FirebaseAppInstance"; if([FIRApp appNamed:UNIQUE_FIREBASE_INSTANCE_IDENTIFIER_WIDGET] == nil) // there should be only one app instance! { NSString *resourceName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"FirebaseResource"]; NSString *filePath = [[NSBundle mainBundle] pathForResource:resourceName ofType:@"plist"]; FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; [FIRApp configureWithName:UNIQUE_FIREBASE_INSTANCE_IDENTIFIER_WIDGET options:options]; } 

在你的主应用程序中,你也应该使用不同的唯一名称。 所以你可以有多个实例,但每个实例只configuration一次。