开发者社区> 问答> 正文

从防火墙检索用户信息

我知道这个问题被问了很多次,但似乎没有一种解决方案适合我(我一直在尝试来自以下线程的多个解决方案:从消防基地快速读取数据但它不会把任何东西打印到我的控制台上)。我试图从我的数据库中检索用户类型,但我不知道如何检索。

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”,要么是adminhttps://i.stack.imgur.com/TA8qX.png

上面的截图是Firebase实时数据库的截图。我试图检索用户的类型,但我不知道如何检索。请帮我弄清楚这一点,如果可能的话,解释一下代码,因为我对Firebase一般并不了解太多。我试着读了他们的火药库文档,但我还是不太明白。

展开
收起
游客5akardh5cojhg 2019-12-24 13:12:58 2017 0
1 条回答
写回答
取消 提交回答
  • 看起来你把数据设置得很好除了username属性似乎是由两个选项组成的串联字符串(可能是firstName.text和lastName.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)。稍后您的代码会更容易。

    2019-12-24 13:13:20
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《云防火墙实现多账号统一管控》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载