【问题标题】:Firebase database not workingFirebase 数据库不工作
【发布时间】:2017-07-20 05:03:56
【问题描述】:

我正在开发一个需要 Firebase 身份验证和数据库的应用。注册时,应用程序必须检查输入的代码是否真实,然后继续创建用户。这是我的代码:

ref = FIRDatabase.database().reference()

    self.ref.child("PatientCodes").observeSingleEvent(of: .value, with: { (snaphshot) in
        print("In")
        let value = snaphshot.value as! NSArray

        if value.contains(self.patientIDTextField.text!) {
            print("Found ID")

            FIRAuth.auth()?.createUser(withEmail: self.emailTextField.text!, password: self.passwordTextField.text!, completion: { (user, error) in
                if user != nil {
                    self.performSegue(withIdentifier: "registered", sender: self)
                }
            })

        }

我遇到的问题是,没有代码在self.ref.child 等之后执行。print("In") 语句永远不会被命中。

非常感谢任何帮助。提前致谢。

【问题讨论】:

  • 显示运行上述查询的 Firebase JSON 结构。
  • 我不能显示那个数据,它对客户是保密的,但是,父母是“PatientCodes”,孩子们列在下面。
  • @EvanRey 请研究MCVE,它解释了最小化重现问题的必要性和价值。
  • 干杯 @EvanRey 但这对我来说不是问题。我的问题是在向数据库发出请求之前我没有登录。我以为我已通过身份验证,因为 currentUser.id 存在,但它是从我之前登录时缓存的。
  • @MacLean 如果没有当前用户,只需致电FIRAuth.auth()?.signIn() 再次登录

标签: ios iphone swift firebase-realtime-database


【解决方案1】:

在使用Firebase Database 开始之前, 首先检查控制台中数据库下的规则是否设置正确,即读取是true还是写入是true

【讨论】:

    【解决方案2】:

    看你数据库的规则,默认规则是禁止匿名读写,所以你必须先登录才能访问数据库。

    {
      "rules": {
        ".read": "auth != null",
        ".write": "auth != null"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      相关资源
      最近更新 更多