gpt4 book ai didi

firebase-realtime-database - 我可以在 firebase 中创建一个规则来查询 push() 数组中的值吗?

转载 作者:行者123 更新时间:2023-12-04 08:44:44 24 4
gpt4 key购买 nike

我只希望用户能够加载该组,如果他们的列表中有该组,我将如何为此编写规则?

或者有没有办法编写规则来查找 firebase 推送数组中的值?

Database Schema

例如,我想写一个规则,可能看起来像这样。这条规则无效,但旨在用它来解释我的观点。

"groups":{
"$group_id":{
".read":"root.child('users').child(auth.uid).child('groups').hasChildValue().val() == $group_id"
}
},

我只希望用户能够加载该组,如果他们的列表中有该组,我将如何为此编写规则?

更新,我是如何修复它的。
- 将数据重组为平坦的。摆脱使用 push() 添加值。
- 平面数据使引用键变得容易。

Fixed Structure
"groups":{
// root/users/auth.uid/groups/$group_id
"$group_id":{
// only read if the user has the group_id
".read":"root.child('users').child(auth.uid).child('groups').child($group_id).exists()",
// only write if logged in and it's new || if the user has group id
".write":"(auth != null && !data.exists() && newData.exists()) || root.child('users').child(auth.uid).child('groups').child($group_id).exists()"
}
},

最佳答案

您似乎正在尝试“过滤”组数据,这不是 Firebase 规则的用途。请参阅链接以供引用:
https://firebase.google.com/docs/database/security/securing-data#rules_are_not_filters

对于听起来您想要实现的目标(限制对组的读取访问权限),您需要将数据模型调整为您的应用程序需要访问它的方式。如果这就是您要找的,请告诉我,我可以更新我的答案。

关于firebase-realtime-database - 我可以在 firebase 中创建一个规则来查询 push() 数组中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37633471/

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