首页 > 解决方案 > Firebase UpdateChildValues 未设置任何值

问题描述

我有一个聊天应用程序,用户可以在其中设置 1:1 或 1:many 聊天室。我想将所有uids存储chat_roomchat_room_members. 我正在尝试使用updateChildValues([user.id: true]),但它没有设置任何东西。如果我改用setValues它,它会覆盖uids 并仅存储最后一个,这不是我想要的。这是我正在尝试做的事情:

// 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设置这个节点。

标签: swiftfirebasefirebase-realtime-database

解决方案


你可以试试

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

推荐阅读