我是快速编程的新手,我的情况是:
我有一个基于Firebase实时“查看图片”的数据库,我只想检索特定ID的firstName
和lastName
数据。
例如:
当我进入登录屏幕并使用以下电子邮件登录时:“ ali_y_k@hotmail.com
”,当进入下一个屏幕时,我想显示firstName
和{{1 lastName
中}}}在图片上显示的文本字段中
我尝试了几种解决方案,但问题始终是我无法输入随机ID子级来获取email
和firstName
我尝试过的是: 第一
func retriveInfo(){
lastName
这是从每个ID打印所有数据(let databaseRef = Database.database().reference().child("User_Informations")
databaseRef.observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,String>
let firstName = snapshotValue["firstName"]!
let lastName = snapshotValue["lastName"]!
let email = snapshotValue["email"]!
print(firstName,lastName,email)
}
}
,firstName
,lastName
)
第二
email
这将打印每个键“ Id”和所有信息
预先感谢您:)
答案 0 :(得分:2)
由于您拥有childByAutoId,因此必须使用有序查询和相等查询。
let reference = Database.database().reference().child("User_Informations").queryOrdered(byChild: "email")
reference.queryEqual(toValue: "ali_y_k@hotmail.com").observeSingleEvent(of: .childAdded) { (snapshot) in
let dictionary = snapshot.value as! [String : Any]
let firstName = dictionary["firstName"]
print(firstName)
}
答案 1 :(得分:1)
登录后,您需要使用当前用户ID
let currentUserUid = FIRAuth.auth()!.currentUser!.uid
let databaseRef = Database.database().reference().child("User_Informations/\(currentUserUid)")
databaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
}