【问题标题】:A way to enforce a unique property in Firebase一种在 Firebase 中强制执行唯一属性的方法
【发布时间】:2013-05-02 13:19:54
【问题描述】:

在我的 Firebase 中,我有许多数据项,在本例中它们是公告。每个公告都有一个“ID”的子属性,对于每个公告来说都是唯一的。当我通过休息向数据库发布公告时,有没有一种方法可以强制 ID 是唯一的?也就是说,如果我尝试添加两次具有相同 ID 的公告,第二次就会失败。我怀疑我可以用规则做点什么,但我不确定。

谢谢, 德克兰

【问题讨论】:

    标签: rest firebase firebase-security


    【解决方案1】:

    实现这一点的最佳方法是通过 ID 本身来识别每个公告,而不是将其作为子属性。然后您可以使用如下安全规则:

    ".write": "!data.exists()"
    

    如果有人尝试使用已经存在的 ID 编写公告,则写入规则将评估为 false,因此将被禁止。

    您可以使用push() 方法生成按时间顺序排列的唯一标识符。

    【讨论】:

    • 不,你可以在键“gonzagan”下有多个孩子 - 如果你尝试使用 set() 写一个键为“01”的孩子,它将失败,因为“01”已经存在,但是设置了一些东西使用“02”即可。
    • 你(@Anant)介意提出一个简单的例子来说明它的工作原理吗?例如。假设我已登录,我想创建一个组,如果组名不存在,我只能这样做。忽略登录,所有这些,只是围绕创建组和捕获唯一性的代码(和规则)?
    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2010-09-10
    • 2018-09-20
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多