我有一个聊天应用程序,用户可以在其中设置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
设置了此节点。
答案 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)