我想更新比方说第二个用户,uid 为 5p3XT8TVFbVYNmFt0Kbu1ticaUT2 的用户,并将其名称更改为“James”。使用 iOS SDK 我可以做到:
let ref = Database.database().reference()
let id = 5p3XT8TVFbVYNmFt0Kbu1ticaUT2
let databaseQuery = ref.child("users").queryOrdered(byChild: "uid").queryEqual(toValue: id)
为了查询数据库,它会过滤掉除我要更改的用户之外的所有用户。但是这个查询现在将指向过滤后的用户列表,其中只包含我要更新的用户,而不是用户本身。所以如果我尝试
databaseQuery.ref.updateChildValues(...)
数据库看起来像这样:
我无法从 api 引用中理解如何直接找到被查询的 child 。我该怎么做?
最佳答案
您可以在值字典中设置要更改的值
func updateValues(){
let ref = Database.database().reference()
let id = 5p3XT8TVFbVYNmFt0Kbu1ticaUT2
let values = ["name": txf_Name.text ?? "", “email”: txf_email.text ?? "", “role”: txf_Role.text ?? ""]
ref.child(id).updateChildValues(values, withCompletionBlock: { (error, ref) in
if(error != nil){
print(error?.localizedDescription ?? "")
return
}
print("Values Updated")
})
}
关于ios - 在 Firebase iOS SDK 中更新实时数据库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284517/