iOS扩展 - 致命异常:com.firebase.core默认应用程序已配置
iOS扩展 - 致命异常:com.firebase.core默认应用程序已配置。iOS扩展 - 致命异常:com.firebase.core默认应用程序已配置
我在viewDidLoad()方法中运行Fir.configure(),并且有些事件会传递并传递给Firebase。
有人可以帮我解决这个问题..谷歌不够友好。
PS:是的,我在Firebase控制台中创建了第二个.plist和第二个应用程序。 PPS:是的,我选择了正确的目标,每个GoogleServices的plist
我正在寻找解决方案..
答案是例外。你正在配置应用两次。你有几个选择来解决这个问题:
1)在你的应用程序委托中配置你的应用程序一次。
2)将配置与取消配置相匹配。 FIRApp上有一个方法可以让你取消配置(实际的名字让我感到难过)。
我不知道你是否仍在寻找解决方案,但我有同样的问题,使用Firebase的扩展。
我落得这样做:
if(FIRApp.defaultApp() == nil){
FIRApp.configure()
}
这将检查,如果应用程序已经配置,使没有崩溃。
问题是我的主要应用程序,我的kb是两个不同的应用程序在Firebase中,并有2个不同的plists。所以这种方法不会有太大的用处,因为两者都将被配置为默认的应用程序,但使用不同的名称。该解决方案可能有效,但我选择与GA保持实时分析和图表。 Firebase尚未准备好。感谢您的迟到回复。 PS:即使这个解决方案工作。我仍然需要来自kb和应用程序的不同数据。所以如果一个人被配置,而另一个不是......那不会帮助我的情况。 – Stefan
这很好。在扩展上下文中使用它。 –
我也在今天的扩展代码中得到了这个问题。我解决了,如果有额外的检查,如果你的火力地堡实例已配置:
// 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];
}
在你的主应用程序,你也应该使用不同的唯一的叫法。所以你可以有多个实例,但每个实例只配置一次。
我有同样的问题,我在我的应用程序使得在两个地方的变化(检查您的迅速版本语法)解决它:
-
在AppDelegate.swift重写以下方法:
覆盖的init(){ FirebaseApp.configure() }
-
在你ViewController.swift的viewDidLoad()方法,写这样的代码:
if FirebaseApp.app() == nil { FirebaseApp.configure() }
嗯..我结束了使用谷歌分析,因为如果你不配置火力地堡,你崩溃,如果你配置teice你崩溃。 Firebase似乎不支持扩展程序。即使您可以取消配置,问题是您在主应用程序和扩展中取消配置Firebase。这不是真的应该发生或被治疗。 Firebase不可靠。谷歌分析是更好的选择。 PS:我尝试使用plist的数据进行手动配置,但它仍然无法在扩展中使用。当你发布一个版本时,它每次都会崩溃,而在调试时它是50/50 – Stefan
啊,你试图在你的应用和扩展中使用forename?您可以通过为每个FIRApp注册自定义FIRApp来实现该目的,而不是使用默认应用程序。 – Mark
因此,我在控制台中配置了2个应用 - > 2个plists。我尝试配置两个...崩溃..只尝试主..崩溃。试图把自定义名称的扩展..没有加载Firebase。试图输入所有数据到FirOptions ..没有扩展。然后我添加了谷歌分析并删除了Firebase分析 – Stefan