我尝试使用以下命令从 Firebase 数据库中提取某个 View Controller 上的数据:
_refHandle = [_postRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *postDict = snapshot.value;
// ...
}];
该代码在模拟器中运行良好,但在 iPhone 上不起作用(代码被跳过)。我在应用程序的其他部分使用这段代码,它可以在设备和模拟器上运行。我还将这段代码实现为用于提取数据的自定义方法(仍然不起作用)。有谁知道为什么这在真实设备上不起作用?
最佳答案
我发现如果您登录并删除应用程序,那么在您再次安装该应用程序后,您仍然会登录。我不太清楚,但我假设 Firebase 以某种方式将帐户缓存绑定(bind)到钥匙串(keychain)带有 Bundle Identifier,不在应用本地存储中。
我的解决方案不够好,但对我有用:
- 从真实设备上删除您的应用程序。
- 在导航面板中转到您的项目。
- 在“常规”选项卡中更改您的 Bundle 标识符,例如:“myApp.com”更改为“myApplication.com”或您想要的任何内容。
- 构建并运行
- 宾果!
更新:Firebase 使用您的 Bundle 标识符作为 key 来记住钥匙串(keychain)中的数据,这就是为什么它在您更改 Bundle Identifier 时起作用
关于ios - Firebase 在模拟器中工作但在 iPhone 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176791/