我有一个用户集合,每个文档的ID都是用户的电子邮件。 登录用户时,我想检查用户集合中是否有已经包含此电子邮件作为文档ID的文档(如果该用户确实已注册)。
我使用firebase firestore,并且我有一些安全规则,仅允许经过身份验证的用户读取文档的数据。
我对该收藏的规则如下:
match /collection/{docId} {
allow read: if request.auth != null;
...
}
登录页面中的代码:
firebase.firestore().collection('collection').doc('docId').get()
.then(doc => {
if (doc.exists) {
firebase.auth().signInWithEmailAndPassword(email,password);
}
else {
this.setState({ error: 'user does not exist' });
}
})
.catch(() => this.setState({ error: 'you don't have permission' }));
}
运行此检查时,出现错误“您没有权限”,但是当我更改allow read: if true
的规则时,它工作正常。
我只需要检查文档是否存在。