如果相关数据仍然存在,如何防止删除?

时间:2019-05-27 19:03:08

标签: google-cloud-firestore firebase-security-rules

我需要确保如果该问题的所有“答案”都已删除,则用户只能删除其“问题”。

问题和答案存储在不同的集合中。这是一些无效的代码,这些代码解释了我在寻找什么:

service cloud.firestore {
  match /databases/{database}/documents {
    match /questions/{question_id} {
      allow delete: if !exists(/databases/$(database)/documents/answers/{answer}).where(answer.question_id == question_id);
    }
  }
}

我似乎无法弄清楚如何将“存在”呼叫仅限于那些回答问题的人。

我愿意接受所有建议,甚至包括那些在必要时涉及重组数据的建议。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您无法使用Firebase安全规则对集合执行查询。如果您知道单个文档的完整ID,则只能get()并检查exists()单个文档。因此,您现在无法执行的操作。

您可以做的是在其他一些已知文档中保留一个计数或布尔标志,并在该计数值为允许用户删除文档的条件时允许删除。

相关问题