android - Firebase 实时数据库,安全规则 - 检查其他节点
问题描述
我有一个连接到 Firebase 的应用。在这个应用程序中,我有几个子节点,包括“用户”。用户结构如下:
Users: {
-uid: {
-coins
-email
-name
...
}
}
必要时,我需要当用户执行某个操作时,获取硬币的数量,写入另一个节点,然后由主节点重置。但是,某些具有 root 权限的用户能够更改此值(从一个节点切换到另一个节点时)。如何使用安全规则检查辅助节点的 newData 是否对应于用户中的硬币值?
解决方案
如果没有看到您正在编写的数据,很难确定,但我认为您正在寻找这样的东西:
".write": "newData.child('coins').val() ==
root.child('Users').child($uidOfTheUser).child('coins').val()"
因此,这将检查coins
该规则所在路径下的新数据是否coins
与用户的当前值相同$uidOfTheUser
。这$uidOfTheUser
要么来自此规则所在的路径,要么来自正在写入的数据。再说一遍:如果您向我们展示更多正在编写的实际代码和 JSON,我们可能会提供更好的帮助。
推荐阅读
- c++ - 从不属于应用程序的闪存读取
- javascript - 尽管有 if 语句,但代码仍在运行所有循环
- flutter - 颤振:android清单不读取kotlin文件(Application.kt)
- html - 将网格间隙添加到网格的一端
- laravel - 如何将 apiReources 方法与`only`一起使用?
- android - TableRow - 获取列数
- json - 使用 flatpak 发送文件
- javascript - 第二个下拉列表为空
- reactjs - react-recharts LineChart 不呈现
- android - InvalidRequestException 无效的客户端密码 - 条纹支付 sdk