检查 firebase 规则中动态 ID 的值
Check value of a dynamic id in firebase rules
我是 Firebase 的新手,我正在为我的数据库编写规则。
我有这样的东西:
"messages" : {
"generatedId1" : {
"status" : "waiting"
"sender" : "uid"
},
"generatedId2" : {
"status" : "send"
"sender" : "uid2"
}
}
这只是一个例子,并不是实际的数据库。
我想要的是设置规则,让客户端可以请求状态为"waiting"的所有消息,但不能请求状态为"send"的消息。
问题是当我处于消息级别时,我不知道如何设置状态规则。
我有这样的东西:
"messages" : {
".read": "(auth != null && data.child($generated).child('status').val() === 'WAITING')"
}
这里的问题是我无法达到状态。 $generated 显然不起作用,我没有找到任何可以访问所有子项的内容。
旁注,我已经考虑过将列表分开(一个列表用于等待消息,一个用于发送消息),但在我的情况下它确实不是最佳选择,我需要另一个解决方案(如果存在)
如果你有,欢迎!
感谢您的帮助!
您正在寻找 query-based rules。在您的情况下,规则看起来像这样:
"messages" : {
".read": "auth != null &&
query.orderByChild == 'status' &&
query.equalTo == 'waiting'"
}
请记住,您必须使用相同的查询来读取数据。
我是 Firebase 的新手,我正在为我的数据库编写规则。 我有这样的东西:
"messages" : {
"generatedId1" : {
"status" : "waiting"
"sender" : "uid"
},
"generatedId2" : {
"status" : "send"
"sender" : "uid2"
}
}
这只是一个例子,并不是实际的数据库。
我想要的是设置规则,让客户端可以请求状态为"waiting"的所有消息,但不能请求状态为"send"的消息。 问题是当我处于消息级别时,我不知道如何设置状态规则。
我有这样的东西:
"messages" : {
".read": "(auth != null && data.child($generated).child('status').val() === 'WAITING')"
}
这里的问题是我无法达到状态。 $generated 显然不起作用,我没有找到任何可以访问所有子项的内容。
旁注,我已经考虑过将列表分开(一个列表用于等待消息,一个用于发送消息),但在我的情况下它确实不是最佳选择,我需要另一个解决方案(如果存在)
如果你有,欢迎!
感谢您的帮助!
您正在寻找 query-based rules。在您的情况下,规则看起来像这样:
"messages" : {
".read": "auth != null &&
query.orderByChild == 'status' &&
query.equalTo == 'waiting'"
}
请记住,您必须使用相同的查询来读取数据。