【发布时间】:2020-05-21 20:44:16
【问题描述】:
我有一些firestore数据如下:
/team/[id]
{
teamName: "My team"
members: []
inviteCode: "jfds621jd"
}
我想编写一个安全规则,以便任何用户都可以阅读任何团队,但前提是他们根据邀请代码进行查询。否则,如果他们的 auth.uid 在 members 数组中,我只希望他们能够读取团队。
换句话说,这个查询对于任何用户都应该成功:
firebase.firestore().collection('teams').where('inviteCode', '==', 'jfds621jd');
但是这样的事情(不是基于邀请码的查询)应该会失败,除非当前的 UID 在成员数组中。
firebase.firestore().collection('teams').get()
在弄清楚这一点时遇到了一些麻烦。似乎没有办法访问安全规则中的查询“where”条件。
谢谢!
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security