ios - 特定用户信息的 Firebase 查询不起作用。我该如何解决这个问题?
问题描述
我编写了一个 firebase 查询,用于搜索用户的级别,然后更改视图控制器上的级别标签。但是,此查询为我的 Firebase 数据库中的第一个用户提供了级别,而不是当前用户的级别。我该如何解决这个问题?
@IBOutlet weak var levelLabel: UILabel!
var refUser:DatabaseReference?
override func viewDidLoad() {
super.viewDidLoad()
refUser = Database.database().reference().child("userInfo");
let userID = Auth.auth().currentUser!.uid
let query = refUser?.queryOrdered(byChild: "userId").queryEqual(toValue: "\(userID)")
query?.observeSingleEvent(of: .value, with: { snapshot in
for child in snapshot.children {
let childSnap = child as! DataSnapshot
var dict = childSnap.value as! [String: Any]
let level=dict["level"] as! String
self.levelLabel.text=level
}
})
}
Firebase 数据库的照片
解决方案
尝试这样的方式:
query?.observeSingleEvent(of: .value, with: { snapshot in
guard let values = snapshot.value as? [String: Any],
let level = values["level"] as? String else {
return
}
DispatchQueue.main.async {
self.levelLabel.text = level
}
})
推荐阅读
- audit.net - Audit.Net:保存在不同数据提供者中的过程
- xamarin.forms - Xamarin Forms:如何将 contentPage 工具栏图像居中对齐?
- floyd-cycle-finding - Ruby中哈希内的循环检测
- sql-server - 删除主键约束后,列会发生什么?
- api - Stripe 检索客户 API 还检索卡信息(PCI 合规性)
- reactjs - React Native Inline style for multiple Text in single Text With Touch effect
- email - 如何根据表单响应中单元格的值发送有条件的电子邮件?
- amazon-web-services - 通过 pyspark 中的 UDF 读取文本文件返回意外输出
- firebase - 在 Xamarin 表单中实现 FirebasePushNotificationPlugin 与本地通知相结合
- macos - 在 macOS Catalina 上检测屏幕录制设置