在Firebase中执行交易

隐身

我目前正在使用Firebase构建我的第一个应用程序。到目前为止,到目前为止,数据库是灵活且易于使用的,我很喜欢。

我正在构建一个完整的Web应用程序,这意味着所有代码和逻辑都将在浏览器中执行。对于某些更新,我将需要进行事务处理以确保数据保持一致。

但是并不是每个人都喜欢顺序和一致的数据,而且我担心某些人可能会尝试创建自己的错误客户端来攻击我的应用程序。

tl; dr:当我们仅使用Web客户端时,是否有一种方法可以对某些更新强制执行事务?

一只蚂蚁

您不能强制执行事务本身,但是可以强制执行它们对数据的影响。例如,如果您希望一次只增加一个特定字段1,则可以编写如下安全规则:

{
  "rules": {
    "counter": {
      ".write": "newData.val() == data.val() + 1"
    }
  }
}

在您的客户端代码中,您可以使用该transaction()函数适当地增加计数器,但是如果有人尝试在安全规则强制执行的范围之外写入数据,则该操作将失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章