Firebase数据验证

时间:2015-03-11 12:43:01

标签: firebase

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

让我们说我正在制作游戏而玩家会对另一位玩家造成伤害我想验证以下内容:

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

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

提前致谢 纳斯

1 个答案:

答案 0 :(得分:8)

使用Firebase绝对可以验证数据。它是“安全”规则的一部分,可以在其中找到文档herehere

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

  

示例.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])$/)"

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

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