【问题标题】:How to check if document ID exists without reading contents of document in firestore?如何在不读取firestore中文档内容的情况下检查文档ID是否存在?
【发布时间】:2020-08-01 15:52:21
【问题描述】:

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

我的代码现在看起来像这样https://stackoverflow.com/a/46965065/10807253

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。是的,另一个子集合的想法很好,但是我每次写任何消息或阅读时都必须检查一下吗?另外,这是添加聊天功能的正确方法吗?
    猜你喜欢
    • 2020-10-23
    • 1970-01-01
    • 2023-02-25
    • 2021-07-22
    • 2020-04-24
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多