【问题标题】:way to check if Firestore document exists from firebase realtime database security rules?从firebase实时数据库安全规则检查Firestore文档是否存在的方法?
【发布时间】:2020-03-09 06:41:57
【问题描述】:

我将 Firestore 文档 ID 存储在 Firebase 数据库节点中,并且 Firebase 数据库中的安全规则只需要在其在 Firestore 中引用的文档不存在时才允许删除 ID。有没有办法做到这一点?如果没有,有没有办法从 firebase 数据库规则中调用一个函数来检查 ID 是否引用了 Firestore 中的现有文档并让它返回一个值?

【问题讨论】:

  • 您的标题提到了 Firebase 实时数据库,但问题仅涉及 Firestore。您可能想更改标题。

标签: firebase firebase-realtime-database google-cloud-firestore google-cloud-functions firebase-security


【解决方案1】:

不,你不能。安全规则无权访问 Firestore,虽然 Firebase 函数有一个 onDelete 触发器,但它们会在数据库中已经实现更改后执行。

【讨论】:

    【解决方案2】:

    您没有说明从哪里访问数据库(网络或应用程序),但您可以使用要删除的文档 ID 调用云函数,然后云函数可以检查 id 引用的数据是否存在,并且如果没有,则从 firestore 集合中删除 id。

    您还可以在云函数中添加任何您想要的额外逻辑。

    https://firebase.google.com/docs/functions/get-started

    另外

    https://firebase.google.com/docs/firestore/extend-with-functions

    讨论如何使用云功能扩展 Firestore 功能。

    【讨论】:

    • 我需要检查 Firestore 文档 ID 是否引用了实时数据库安全规则中的现有文档以允许删除它,我在问是否可以从 Firebase 实时数据库安全中检查 Firestore 中的文档是否存在规则
    • 函数在触发前不执行,不能取消动作
    猜你喜欢
    • 2020-10-19
    • 2021-05-23
    • 2020-08-08
    • 2020-01-22
    • 2021-08-16
    • 2019-12-17
    • 1970-01-01
    相关资源
    最近更新 更多