【问题标题】:Retrieving user info from firebase从 firebase 检索用户信息
【发布时间】:2019-12-24 02:27:52
【问题描述】:

我知道这个问题被问了很多,但似乎没有一个解决方案对我有用(我一直在尝试来自 Read data from firebase swift 等线程的多个解决方案,但它不会在我的控制台上打印任何内容)。 我正在尝试从我的数据库中检索用户的类型,但我不知道如何。

func pushUserInfo(){
    let ref = Database.database().reference()
    let infoDict = ["First name": firstName.text!, "Last name": lastName.text!, "hours": 0, "isUser" : "user"] as [String : Any]
    let users = ref.child("users").child(username)
    users.setValue(infoDict)
}

显示 ["type": "user"] 的部分有两个选项,"user" 或 admin

上面的屏幕截图是 Firebase 实时数据库。 我正在尝试检索用户的类型,但我不知道如何。请帮我解决这个问题,如果可能的话,解释一下代码,因为我对 Firebase 的了解并不多。我尝试阅读他们的 firebase 文档,但我仍然不明白。

【问题讨论】:

    标签: ios firebase firebase-realtime-database swift4


    【解决方案1】:

    看起来你设置的数据很好,除了你的username属性似乎是两个可选的连接字符串(可能是firstName.textlastName.text。所以这将使得无法查询。第一个步骤是将这些解包成一个字符串:

    let username = "\(firstName.text!) \(lastName.text!)"
    

    完成后,您可以像这样查询该数据:

    let username = "\(firstName.text!) \(lastName.text!)"
    let ref = Database.database().reference().child("users/\(username)")
    ref.observeSingleEvent(of: .value, with: { (snapshot) in
      // Now you can access the type value
      let value = snapshot.value as? NSDictionary
      let type = value?["type"] as? String ?? ""
      }) { (error) in
        print(error.localizedDescription)
    }
    

    您可能还想重新考虑在属性名称中包含空格(可能使用lastName 而不是last name)。以后你的代码会更容易。

    【讨论】:

    • 感谢您的帮助!感谢您的建议。
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多