Firebase 实时数据库,安全规则 - 检查其他节点
Posted
技术标签:
【中文标题】Firebase 实时数据库,安全规则 - 检查其他节点【英文标题】:Firebase Realtime Database, Security Rules - Check other nodes 【发布时间】:2021-08-16 05:41:33 【问题描述】:我有一个连接到 Firebase 的应用。在这个应用程序中,我有几个子节点,包括“用户”。用户结构如下:
Users:
-uid:
-coins
-email
-name
...
必要时,我需要当用户执行某个操作时,获取硬币的数量,写入另一个节点,然后由主节点重置。 但是,某些具有 root 权限的用户能够更改此值(从一个节点切换到另一个节点时)。如何使用安全规则检查辅助节点的 newData 是否对应于用户中的硬币值?
【问题讨论】:
【参考方案1】:如果没有看到您正在编写的数据,很难确定,但我认为您正在寻找这样的东西:
".write": "newData.child('coins').val() ==
root.child('Users').child($uidOfTheUser).child('coins').val()"
所以这会检查该规则所在路径下coins
中的新数据是否与$uidOfTheUser
用户的当前coins
值相同。 $uidOfTheUser
要么来自此规则所在的路径,要么来自正在写入的数据。再说一遍:如果您向我们展示更多正在编写的实际代码和 JSON,我们可能会提供更好的帮助。
【讨论】:
以上是关于Firebase 实时数据库,安全规则 - 检查其他节点的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 实时规则如何检查具有 AutoID 的节点是不是包含正确的数据