【问题标题】:assertUnfrozen on iOS在 iOS 上断言解冻
【发布时间】:2017-04-21 05:49:26
【问题描述】:
我在 iOS 应用程序中使用 Firebase 实时数据库,并通过 Firebase 的崩溃报告([FIRDatabase assertUnfrozen] 从[FIRDatabase setPersistenceEnabled:] 调用)获得崩溃报告。 (这些报告还有一个变体,其来源是 FIRDatabaseConfig 而不是 FIRDatabase)
在我的应用委托的 application:didFinishLaunchingWithOptions: 方法中,我从文件加载 Firebase 配置,然后将持久性设置为启用。对于每 200 个用户中的大约 1 个,这会导致 assertUnfrozen 崩溃。我是在以不正确的方式初始化 Firebase,还是有人知道出了什么问题?
【问题讨论】:
标签:
ios
objective-c
firebase
firebase-realtime-database
firebase-crash-reporting
【解决方案1】:
必须在使用 FIRDatabase 实例之前调用 setPersistenceEnabled。这是导致崩溃的原因,因此请在调用 setPersistenceEnabled 之前检查您是否正在使用 FIRDatabase 实例。
在我的例子中,我在 applicationDidEnterBackground 中使用了 FIRDatabase 实例,并且我在 launchController 中使用了 setPersistenceEnabled。一旦我们打开应用程序,在调用 launchController 之前,让应用程序进入后台。然后,applicationDidEnterBackground 得到调用并在调用 setPersistenceEnabled 之前使用了 FIRDatabase 实例。所以,我从 applicationDidEnterBackground 中删除了 firebase 代码,并在调用 setPersistenceEnabled 之后编写了它。