Firebase UpdateChildValues没有设置任何值

时间:2018-09-11 09:49:15

标签: swift firebase firebase-realtime-database

我有一个聊天应用程序,用户可以在其中设置1:1或1:许多聊天室。我想将uid的所有chat_room存储在chat_room_members下。我正在尝试使用updateChildValues([user.id: true]),但未设置任何设置。如果我改用setValues,它将覆盖uid并仅存储最后一个,这不是我想要的。这是我想要做的:

// chat_room_members > chatId > userId : true
for user in recipients {
print("user id to be set in chat_room_members:", user.id) // prints successfully all uids of the users

    Database.database().reference().child("chat_room_members").child(chatId).updateChildValues([user.id : true])
}

PS:recipients是一个数组,用于存储当前用户要与之聊天的所有用户。

我正在测试chat_room_members甚至还没有存在于数据库中时。第一个chat_room设置了此节点。

1 个答案:

答案 0 :(得分:1)

您可以尝试

var dic = [String:Bool]()
recipients.forEach { dic.updateValue(true, forKey:$0.id) }
Database.database().reference().child("chat_room_members").child(chatId).setValue(dic)