【发布时间】:2019-10-08 12:03:14
【问题描述】:
我正在编写一个聊天应用程序,并在安全规则部分之外完成。我目前正在为每条消息创建两个文档(每个用户一个)我可以将文档写入我的用户 ID,但数据库不允许写入另一个配对的用户 ID。
如果 userId 在另一个文件的 resource.data 中,我已经尝试允许写入
match /message/{user}/{chatRoomID}/{messageId} {
allow read, write: if request.auth.uid == user || request.auth.uid in resource.data;
}
我怎样才能做到每当一条消息被发送到数据库时,它只能被特定的用户 ID 读取并且可以被写入? 每个消息对象都引用了谁发送它(每个用户的对象 ID)。提前致谢!!
【问题讨论】:
-
请编辑您的问题以包含编写消息并被拒绝的最小、完整/独立代码。查看示例文档的屏幕截图也很有用。
-
这个
request.auth.uid in resource.data子句似乎不太可能是正确的。您更有可能需要包含包含其他用户 UID 的字段,并使用==进行比较。
标签: firebase google-cloud-firestore firebase-security