在我当前的数据库设计中,我希望读取和写入聊天集合的messages子集,但我希望确保聊天id是否存在。聊天ID的格式为user1refID_user2refID
。如果聊天ID不存在,我想创建一个新的聊天ID并触发云函数,通过使用从refID
到UserID
的映射将UID分配给聊天文档的成员1和成员2字段。在我的安全规则中,如果文档已经存在,我将检查传入的用户ID是否等于成员1uid或成员2uid,但是如何确保安全规则不会第一次失败。简单地说,我想检查文档ID是否存在,但也不允许在文档创建后进行读/写访问。这有可能吗?
我的代码现在看起来像这样的https://stackoverflow.com/a/46965065/10807253。
发布于 2020-04-19 07:01:14
这不可能。Firestore不提供任何是否存在的检查。您必须阅读文档才能知道它是否存在。您可能希望在另一个集合中有一个具有相同ID但具有不同安全规则的空文档,您可以通过读取该文档来检查该文档是否存在。
https://stackoverflow.com/questions/61300536
复制