Edu*_*chi 3 firebase google-cloud-firestore firebase-security-rules
阅读Firebase规则文档对于如何阻止匿名访问特定集合或文档我一无所获。
换句话说,我要阻止未登录的用户,并且我也要阻止以匿名身份登录的用户。我只允许用户以自己的身份登录(通过电子邮件,Facebook,Google,SMS等)。
我怎样才能做到这一点?
这是我想出的代码,不起作用:
service cloud.firestore {
match /databases/{database}/documents {
}
match /collectionExample/{documentExample} {
allow create: if request.auth.uid != null && request.auth.token.isAnonymous != false;
allow read: if request.auth.uid == resource.data.userId;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还没有尝试过,但是我怀疑您可以使用request.auth.token.firebase.sign_in_provider(请参阅的文档auth)。应该包含anonymous匿名auth 的值。因此,要允许为非匿名登录用户创建文档:
allow create: if request.auth.uid != null && request.auth.token.firebase.sign_in_provider != 'anonymous';
Run Code Online (Sandbox Code Playgroud)
或者,您可以将其更改为也只允许某些提供程序,并考虑firebase.sign_in_provider到文档中token的其他可能值。
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |