swift - Firebase UpdateChildValues 未设置任何值
问题描述
我有一个聊天应用程序,用户可以在其中设置 1:1 或 1:many 聊天室。我想将所有uid
s存储chat_room
在chat_room_members
. 我正在尝试使用updateChildValues([user.id: true])
,但它没有设置任何东西。如果我改用setValues
它,它会覆盖uid
s 并仅存储最后一个,这不是我想要的。这是我正在尝试做的事情:
// 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
设置这个节点。
解决方案
你可以试试
var dic = [String:Bool]()
recipients.forEach { dic.updateValue(true, forKey:$0.id) }
Database.database().reference().child("chat_room_members").child(chatId).setValue(dic)
推荐阅读
- debugging - 如何让 .NET 5 符号显示在 Process Hacker 或 Process Explorer 的调用堆栈中?
- apache-spark - Spark withColumn 更改模式中的列可为空属性
- android - android 无障碍 API 中 setTouchExplorationPassthroughRegion() 的用途是什么?
- blockchain - 暗网中的比特币支付如何运作?
- java - Neo4J 从 java 中修剪事务日志
- python - 如何测试保存在 .pth.tar 文件中的训练模型?
- python - 获取电子邮件时的 Encode() 参数错误
- php - Laravel 5.8:分页似乎不起作用
- html - 角度容器大小
- database-connection - Microsoft Project Online 连接字符串