Firebase数据验证

Jon*_*s m 4 firebase

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

让我们说我正在做一个游戏,一个玩家对另一个玩家造成伤害我想验证以下内容:

  • 球员实际上彼此接近
  • 伤害点对应于给出的攻击
  • 数据没有从客户端篡改到服务器
  • 等等.

是否有可能验证这种东西/直接使用Firebase添加服务器端逻辑,还是我必须制作一个中间服务器,基本上粉碎了使用Firebase的重点?

在此先感谢乔纳斯

Fra*_*len 8

使用Firebase绝对可以验证数据.它是"安全"规则的一部分,可以在此处此处找到文档.

上一个文档链接的一个简单示例:

样本.validate规则定义,仅允许使用正则表达式检查的年份为1900-2099的YYYY-MM-DD格式的日期.

".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])$/)"
Run Code Online (Sandbox Code Playgroud)

您可以构建非常复杂的验证规则.如果您需要这些,您可能需要查看Firebase的blaze编译器.它将更高级别的语言翻译为Firebase相对较低级别的规则.blaze编译器的作者最初是为你的第二个和第三个用例编写的,并在这里写了一篇关于它的文章.

我希望这些足以让你开始.如果您遇到困难,只需使用您尝试的规则发布问题.

  • 适用于 Firebase 的 Blaze 安全编译器已弃用且不再维护。如果您仍然对使用 Firebase 数据库安全规则编译器感兴趣,请查看实验性 [Bolt](https://github.com/firebase/bolt) 编译器。 (2认同)