我知道这个问题被问了很多次,但似乎没有一种解决方案适合我(我一直在尝试来自以下线程的多个解决方案:从消防基地快速读取数据但它不会把任何东西打印到我的控制台上)。我试图从我的数据库中检索用户类型,但我不知道如何检索。
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一般并不了解太多。我试着读了他们的火药库文档,但我还是不太明白。
看起来你把数据设置得很好除了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)。稍后您的代码会更容易。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。