Firebase数据验证

Firebase数据验证,firebase,Firebase,我正在考虑将Firebase用于一个项目,但似乎找不到任何关于服务器端数据验证的信息 假设我正在制作一个游戏,一名玩家对另一名玩家造成伤害,我想验证以下内容: 事实上,球员们彼此都很亲近 伤害点对应于给定的攻击 数据还没有被更新 从客户端到服务器被篡改 等等 有没有可能直接用Firebase验证这种东西/添加服务器端逻辑,或者我必须制作一个中间服务器,从根本上打破使用Firebase的全部要点 提前谢谢 Jonas使用Firebase肯定可以验证数据。它是其“安全”规则的一部分,可以找到并保

我正在考虑将Firebase用于一个项目,但似乎找不到任何关于服务器端数据验证的信息

假设我正在制作一个游戏,一名玩家对另一名玩家造成伤害,我想验证以下内容:

  • 事实上,球员们彼此都很亲近
  • 伤害点对应于给定的攻击
  • 数据还没有被更新 从客户端到服务器被篡改
  • 等等
有没有可能直接用Firebase验证这种东西/添加服务器端逻辑,或者我必须制作一个中间服务器,从根本上打破使用Firebase的全部要点

提前谢谢
Jonas

使用Firebase肯定可以验证数据。它是其“安全”规则的一部分,可以找到并保存文档

最后一个文档链接中的一个简单示例:

示例.validate规则定义,该定义仅允许1900-2099年之间格式为YYYY-MM-DD的日期,使用正则表达式进行检查

您可以构建相当复杂的验证规则。如果你需要这些,你可能想看看。它将高级语言转换为Firebase相对低级的规则。blaze编译器的作者最初为您的第二个和第三个用例编写了它,并写了一篇关于它的文章


我希望这些足够让你开始。如果您遇到问题,只需按照您尝试过的规则发布一个问题。

Blaze Security Compiler for Firebase已弃用,不再维护。如果您仍然对使用Firebase数据库安全规则编译器感兴趣,请查看实验编译器。
".validate": "newData.isString() &&
              newData.val().matches(/^(19|20)[0-9][0-9][-\\/. ](0[1-9]|1[012])[-\\/. ](0[1-9]|[12][0-9]|3[01])$/)"