ios - 从 ChildbyAutoID Swift 中检索 Firebase 数据
问题描述
我正在使用以下代码将数据快速保存到实时 firebase 数据库:
guard let key = dbreference.child(("user-clients")).childByAutoId().key else { return }
let post = ["uid": userID,
"firstname": clientfirstname,
"lastname": clientlastname,
"dateofbirth": clientdateofbirth,
"haircolour": clienthaircolour,
"products": clientproduct]
let childUpdates = ["/user-clients/\(String(describing: user))/\(key)/": post]
dbreference.updateChildValues(childUpdates)
这会自动在登录的用户下创建一个子 ID(我的理解是这样吗?),并且它工作正常,因为我的数据库正在正确更新。
问题是 - 我正在尝试读取每个人的名字和姓氏并显示在表格视图中(如联系人卡片),但我无法“拉出”firstname
和lastname
数据。
这是我检索数据的代码:
let dbref = Database.database().reference()
let me: String = (Auth.auth().currentUser?.uid)!
let key = dbreference.child(("users")).childByAutoId().key
//Access the databse and retrieve First and Last Names from child
dbref.child("user-clients").queryOrdered(byChild: me).observeSingleEvent(of: DataEventType.value) { (snapshot) in
if snapshot.exists() {
print("exists")
for child in snapshot.children {
let data = child as! DataSnapshot
//print(data.key)
print(data.value!)
if (data as AnyObject).hasChild("firstname") {
print("perfect")
} else {
print("does not exist")
}
if let firstname = snapshot.childSnapshot(forPath:"firstname").value as? String {
print(firstname)
}
if let lastname = snapshot.childSnapshot(forPath:"lastname").value as? String {
print(lastname)
}
}
}
控制台打印出不同自动生成的 ID 下的所有联系人时,似乎我并没有降到另一个层次。我的 JSON 文件如下所示:
{
"user-clients" : {
"Optional(\"4WNCGOaiIMTKAa12Pmi26w11hSb2\")" : {
"-M943knUA5JkpMuxygti" : {
"dateofbirth" : "7777",
"firstname" : "john",
"haircolour" : "blue",
"lastname" : "melon",
"products" : "09876543321",
"uid" : "4WNCGOaiIMTKAa12Pmi26w11hSb2"
},
"-M944HmLvM50rEc4qtM3" : {
"dateofbirth" : "12/12/12",
"firstname" : "basil",
"haircolour" : "yellow",
"lastname" : "brush",
"products" : "678990099",
"uid" : "4WNCGOaiIMTKAa12Pmi26w11hSb2"
},
"-M94C9yk7q6mQglQiaoR" : {
"dateofbirth" : "12/12/77",
"firstname" : "Homer",
"haircolour" : "yellow",
"lastname" : "Simpson",
"products" : "123456789",
"uid" : "4WNCGOaiIMTKAa12Pmi26w11hSb2"
},
"-M94CISM865qWAa8nbK-" : {
"dateofbirth" : "12/11/77",
"firstname" : "Marge",
"haircolour" : "Blue",
"lastname" : "Simpson",
"products" : "09876654433",
"uid" : "4WNCGOaiIMTKAa12Pmi26w11hSb2"
}
任何帮助将不胜感激,我希望以上内容有意义。提前致谢。
解决方案
推荐阅读
- php - PHP回显时图像未显示在表格中,但仅在html中显示
- c# - 如何使用 c# htmlagility 从 html 中获取数字?
- c++ - 需要在代码之前定义类定义的 dynamic_cast 问题
- excel - 如何截断并保留excel公式中的最后一个单词?
- f# - 使用 RunInApplicationDomain 属性应用时,NUnit3 找不到 F# 测试
- regex - 在mongodb的colume中找到一个特殊的模式
- python - 加快打开文件
- python - 在类中使用装饰器访问 self 中的属性
- angular - 新标签上的 Angular 6 routerLink
- parsing - 我的 Megaparsec 解析器卡住了,ghci 调试也无济于事