【问题标题】:firebase firestore check if document with property and value exists [duplicate]firebase firestore检查是否存在具有属性和值的文档[重复]
【发布时间】:2020-01-10 11:02:32
【问题描述】:

我目前正在尝试在用户在数据库中创建数据之前验证数据是否存在。甚至在另一个文档 ID 下。

像这样:用户创建数据,firestore 规则获取集合中的所有文档并检查属性 name 是否与用户提供的相同。如果是,则返回未经授权的访问。

此时我有:

function checkIfCatExists(){
      return get(/databases/$(database)/documents/category/$(documents)).data.name != null;
    }

但这不起作用。你们有什么想法吗?我可以为此创建一个函数,但我想尽可能多地使用规则。

【问题讨论】:

  • 您能更详细地解释一下您的用例吗?根据您当前的解释,我得出以下结论:这似乎非常昂贵,对于每次写入,您都会为检索到的每个文档付费。如果 NAME 是唯一的,那么您可以使用唯一标识符命名文档。你可以通过 CREATE / UPDATE 解决你的访问权限。

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


【解决方案1】:

无法在集合中搜索安全规则中的特定值,因为该操作无法扩展。

如果您想确保用户名的唯一性,则必须创建一个集合,在其中使用用户名作为键。然后,您可以在安全规则中使用 exists 函数来检查该名称是否已存在于集合中。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2017-05-29
    • 2013-12-26
    • 2021-07-22
    • 2020-10-05
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多