如何在不读取Firestore中文档内容的情况下检查文档ID是否存在?

时间:2020-04-19 06:42:13

标签: firebase google-cloud-firestore

在我当前的数据库设计中,我想读写聊天集合的消息子集合,但是我想确保聊天ID是否存在。聊天ID的格式为user1refID_user2refID。如果不存在聊天ID,我想创建一个新的ID,并触发云功能,以使用从refIDUserID的映射为聊天文档的成员1和成员2字段分配UID。在我的安全规则中,我正在检查传入的用户ID是否等于成员1 uid或成员2 uid(如果该文档已存在),但是如何确保安全规则不会第一次失败。简而言之,我想检查文档ID是否存在,但是在创建文档之后也不允许读取/写入访问。这有可能吗?

我的代码现在https://stackoverflow.com/a/46965065/10807253如下。

enter image description here

1 个答案:

答案 0 :(得分:0)

不可能。 Firestore不提供任何存在性检查。您必须阅读该文档才能知道它是否存在。您可能希望在另一个集合中有一个空文档,该文档具有相同的ID,但可以通过阅读来检查其存在性,而使用不同的安全规则。