Firebase 数据验证
Firebase data validation
我正在考虑将 Firebase 用于某个项目,但似乎找不到有关服务器端数据验证的任何信息。
假设我正在制作一款游戏,一名玩家对另一名玩家造成伤害我想验证以下内容:
- 玩家实际上彼此很接近
- 伤害点对应给定的攻击
- 该数据未被
从客户端到服务器被篡改
- 等等
是否可以直接使用 Firebase 验证此类内容/添加服务器端逻辑,或者我是否必须制作一个中间服务器,基本上粉碎了首先使用 Firebase 的全部意义?
提前致谢
乔纳斯
使用 Firebase 绝对可以验证数据。它是其 "security" 规则的一部分,可在 here and here.
中找到其文档
最后一个文档中的一个简单示例 link:
a sample .validate rule definition which only allows dates in the format YYYY-MM-DD between the years 1900-2099, which is checked using a regular expression.
".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. It translates a higher-level language into Firebase's relatively low-level rules. The author of the blaze compiler originally wrote it for your second and third use-case and wrote an article about it here.
我希望这些足以让您入门。如果您遇到困难,只需 post 一个关于您尝试过的规则的问题。
我正在考虑将 Firebase 用于某个项目,但似乎找不到有关服务器端数据验证的任何信息。
假设我正在制作一款游戏,一名玩家对另一名玩家造成伤害我想验证以下内容:
- 玩家实际上彼此很接近
- 伤害点对应给定的攻击
- 该数据未被 从客户端到服务器被篡改
- 等等
是否可以直接使用 Firebase 验证此类内容/添加服务器端逻辑,或者我是否必须制作一个中间服务器,基本上粉碎了首先使用 Firebase 的全部意义?
提前致谢 乔纳斯
使用 Firebase 绝对可以验证数据。它是其 "security" 规则的一部分,可在 here and here.
中找到其文档最后一个文档中的一个简单示例 link:
a sample .validate rule definition which only allows dates in the format YYYY-MM-DD between the years 1900-2099, which is checked using a regular expression.
".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. It translates a higher-level language into Firebase's relatively low-level rules. The author of the blaze compiler originally wrote it for your second and third use-case and wrote an article about it here.
我希望这些足以让您入门。如果您遇到困难,只需 post 一个关于您尝试过的规则的问题。