从 firebase 检索用户信息

Posted

技术标签:

【中文标题】从 firebase 检索用户信息【英文标题】:Retrieving user info from 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 文档,但我仍然不明白。

【问题讨论】:

【参考方案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)。以后你的代码会更容易。

【讨论】:

感谢您的帮助!感谢您的建议。

以上是关于从 firebase 检索用户信息的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中未检索 Firebase 用户详细信息

从 Firebase 检索所有活跃用户

使用 Firebase 用户 UID 检索个人资料信息

无法在firebase + vue中检索用户详细信息和图像

从火力基地检索信息

发出从 firebase 调用信息以设置按钮标题的问题