我知道这个问题经常被问到,但是没有一个解决方案对我有用(我一直在尝试从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文档,但我仍然没有真正理解它。
答案 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
)。以后您的代码会更容易。