Firebase在真实设备(iOS)上无法工作。

8
我在我的iOS应用程序中安装了Firebase。 在模拟器上一切正常,但在真实设备上它不执行/返回到我的数据库查询。
我尝试清理项目,但它没有改变任何东西。
你有解决办法吗?
编辑:使用代码进行更新
override func viewDidLoad() {
    super.viewDidLoad()

    // Setup Firebase
    self.ref = FIRDatabase.database().reference()



    self.ref.child("Database").observeEventType(.Value, withBlock: { (snapshot) in


        if snapshot.exists() {
            for rest in snapshot.children.allObjects as! [FIRDataSnapshot] {
                print(rest.value)


            }
        } else {


        }

    }) { (error) in
        print(error.localizedDescription)
    }
}

在我们能够猜测出问题所在之前,您需要先发布您的代码。 - Grant
我编辑了我的帖子。它在模拟器上运行正常,但在我的iPhone上却不行。 - Jojo
3个回答

3
您的代码没有问题,我也遇到了同样的问题。以下是我的解决方法:
  1. 在左侧导航面板中进入您的项目。

  2. 转到构建设置并向下滚动到构建选项

  3. 启用位码的值更改为

希望这对您也有帮助!

1
@user1585646 这些答案都没有帮到我。但是我从真实设备中明确注销,然后重新登录,数据库立即开始响应。我认为Firebase缓存了密钥并没有正确更新它。 - Jurasic

2
我发现如果您登录并删除应用程序,然后再次安装应用程序,您仍将保持登录状态。我不确定,但我认为Firebase以某种方式将帐户缓存绑定到Bundle标识符而不是本地存储中。因此,解决方案很简单并且对我有效:
1.从真实设备中删除您的应用程序。 2.转到导航面板中的项目。 3.在“常规”选项卡中更改您的Bundle标识符,例如:“myApp.com”更改为“myApplication.com”或其他任何您想要的名称。 4.构建并运行。 5.哇!现在您的应用程序应该能够再次与Firebase良好交互。
更新: Firebase会记住您的Keychain登录信息。
更新: Firebase使用您的Bundle标识符作为密钥在Keychain中记住您的数据。

0

我曾经遇到过同样的问题,原因是由于身份验证。在Firebase启用了身份验证,但我没有对用户进行身份验证。因此,我无法从Firebase数据库读取节点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接