Firebase realtime database 如何配置Firebase安全规则以限制';什么&;何时';用户可以写入Firebase数据吗?

Firebase realtime database 如何配置Firebase安全规则以限制';什么&;何时';用户可以写入Firebase数据吗?,firebase-realtime-database,google-cloud-functions,firebase-security,Firebase Realtime Database,Google Cloud Functions,Firebase Security,我非常了解如何使用firebase security限制哪些用户对firebase实时数据库中的各个节点拥有“.read/.write”权限。 我正在努力理解如何限制用户可以写入节点的内容,以及用户可以写入节点的时间 我正在开发一个为用户提供奖励的应用程序,我想跟踪用户可以交换奖励的积分平衡。当用户在应用程序上完成任务时,将增加用户的积分平衡。从客户端增加此点数平衡需要在firebase security中具有“.write”权限 我知道客户端代码不能保护Firebase数据不被操纵。是否有人可

我非常了解如何使用
firebase security
限制哪些用户对
firebase实时数据库中的各个节点拥有“.read/.write”权限。
我正在努力理解如何限制用户可以写入节点的内容,以及用户可以写入节点的时间

我正在开发一个为用户提供奖励的应用程序,我想跟踪用户可以交换奖励的积分平衡。当用户在应用程序上完成任务时,将增加用户的积分平衡。从客户端增加此点数平衡需要在
firebase security
中具有“.write”权限

我知道客户端代码不能保护Firebase数据不被操纵。是否有人可以在我的应用程序之外操纵自己的积分平衡值?如果是这样的话,我将如何防止某人将其积分余额增加任意数量的积分? 我认为唯一的方法是拒绝该用户对积分余额的“.write”权限,并使用
firebase云函数
在服务器端更新积分余额,而不是从客户端代码更新积分余额。你们觉得怎么样

是否有人可以在我的应用程序之外操纵自己的积分平衡值

是的,任何有互联网连接的人都可以访问数据库。鉴于存在供公共使用的许可证,访问不限于应用程序

我如何防止某人将其积分余额增加任意数量的积分

您可以编写安全规则来限制最终用户直接写入数据库的方式。如果直接写访问不够安全(考虑到客户端可以简单地伪造数据),则必须实现一些后端代码来安全地执行此操作。云功能当然是一种选择


您似乎已经理解了这里的安全含义。这对于大多数应用程序来说都是相当标准的东西。

谢谢你,道格,伪造数据才是我真正想要的。我知道这个概念并不特定于Firebase,但这对我还是有帮助的。