在Firebase iOS SDK中更新实时数据库对象

时间:2018-11-13 15:40:20

标签: ios swift firebase firebase-realtime-database

我有一个看起来像这样的数据库: enter image description here

我想更新第二个用户,即具有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(...)

数据库将如下所示:

enter image description here

我无法从api参考中了解如何直接进入所查询的孩子。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在值字典中设置要更改的值

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")            

    })

}