ios - Firebase 在模拟器中工作但在 iPhone 上不工作

标签 ios objective-c xcode firebase firebase-realtime-database

我尝试使用以下命令从 Firebase 数据库中提取某个 View Controller 上的数据:

_refHandle = [_postRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
  NSDictionary *postDict = snapshot.value;
  // ...
}];

该代码在模拟器中运行良好,但在 iPhone 上不起作用(代码被跳过)。我在应用程序的其他部分使用这段代码,它可以在设备和模拟器上运行。我还将这段代码实现为用于提取数据的自定义方法(仍然不起作用)。有谁知道为什么这在真实设备上不起作用?

最佳答案

我发现如果您登录并删除应用程序,那么在您再次安装该应用程序后,您仍然会登录。我不太清楚,但我假设 Firebase 以某种方式将帐户缓存绑定(bind)到钥匙串(keychain)带有 Bundle Identifier,不在应用本地存储中。

我的解决方案不够好,但对我有用:

  1. 从真实设备上删除您的应用程序。
  2. 在导航面板中转到您的项目。
  3. 在“常规”选项卡中更改您的 Bundle 标识符,例如:“myApp.com”更改为“myApplication.com”或您想要的任何内容。
  4. 构建并运行
  5. 宾果!

更新:Firebase 使用您的 Bundle 标识符作为 key 来记住钥匙串(keychain)中的数据,这就是为什么它在您更改 Bundle Identifier 时起作用

关于ios - Firebase 在模拟器中工作但在 iPhone 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176791/

相关文章:

ios - 如何将 Signal<Bool, NoError> 绑定(bind)到 Reactive Cocoa 4 中 UIButton 的启用属性

objective-c - 如何让 NSTextView 随文本一起增长?

iphone - sqlite3_prepare 错误 #26

xcode - 如何安装 ld 未明确支持的 DYLD 加载器命令?

ios - UITextField 目标/ Action 与委托(delegate)方法

ios - 用Qt获得类似iOS7的模糊效果

iphone - 在用户 header 搜索路径中使用 $(BUILT_PRODUCTS_DIR)

objective-c - 使用仪器检查 xcode 4 中的内存泄漏

ios - 将 GameKit key 添加到您的信息 plist 文件(错误)

ios - Parse.com 查询 TableView 中的所有用户