gpt4 book ai didi

firebase 遵循计数规则

转载 作者:行者123 更新时间:2023-12-03 18:18:14 26 4
gpt4 key购买 nike

我有这个结构

"Following": {
".validate": newData != null && newData.child(count).val() == root.child(Following).child($User).child(count).val() + 1),
"$User": {
"$Following": {
"created": {}
},
"count": {}
}
}

我想防止在不创建或删除后续变量的情况下增加或减少计数变量

为了防止在没有创建新追随者的情况下增加,我添加了这条规则

".validate": newData != null && 
newData.child(count).val() ==
root.child(Following).child($User).child(count).val() + 1)

但是我在不删除以下内容的情况下阻止递减有问题。

我的问题是这个

只有当我知道以下内容将被删除时,我如何才能减少计数变量?

抱歉英语不好:/

最佳答案

你觉得这个方法怎么样?

    "Event": {
"$User": {
"counter": {
".validate": "newData.hasChildren(['value', 'tmp'])",
"value": {},
"tmp": {},
"$other": {
".validate": "false"
},
".write": "data.val() != null && newData.val() != null && (newData.parent().child(newData.child('tmp').val()).val() != null && newData.child('value').val() == data.child('value').val() + 1 || root.child('Event').child($User).child(newData.child('tmp').val()).val() != null && newData.parent().child(newData.child('tmp').val()).val() == null && newData.child('value').val() == data.child('value').val() - 1)"
},
"$Event": {
//some variable and permissions
}
}
}

我使用 tmp 变量来识别我想要验证的事件键是在创建中还是在删除中,因此我更新了值变量。在示例中,我只添加了更新规则,没有添加其他规则,以免造成混淆

关于firebase 遵循计数规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com