【发布时间】:2016-10-23 08:46:57
【问题描述】:
我有这个结构
"Following": {
".validate": newData != null && newData.child(count).val() == root.child(Following).child($User).child(count).val() + 1),
"$User": {
"$Following": {
"created": {}
},
"count": {}
}
}
我想防止 count 变量在不创建或删除跟随者的情况下增加或减少
为了防止在不创建新的情况下增加,我添加了这个规则
".validate": newData != null &&
newData.child(count).val() ==
root.child(Following).child($User).child(count).val() + 1)
但我有问题要防止在不删除以下内容的情况下减少。
我的问题是这个
如果我知道以下内容将被删除,我如何才能减少计数变量?
抱歉英语不好:/
【问题讨论】:
-
嘿@DThink。您能否花一些时间更好地解释一下您到底想要做什么,以便我们提供帮助? :)
-
非常抱歉我的英语不好现在可以理解了吗?
-
好多了! IMO,您不应该将这些计数内容存储在数据库中。根据需要保留
Followings数据,并在应用程序端使用numChildren() 对它们进行计数。 -
是的,过去我尝试过这个,但是这个函数会检索所有数据,然后你可以计算它。例如。如果您有 100.000 张照片,则必须获取所有照片地址,然后才能使用 numChildren() 函数。我认为这是一种表现不佳的方法。不幸的是,我看到在 firebase 中不存在像 sql 语言这样的计数查询。我不是 Firebase 专家,你不存在服务器端的解决方案吗?
-
我刚刚向我的answer here 添加了一个更新,可能会对您有所帮助。
标签: firebase firebase-realtime-database firebase-security