У меня есть коллекция пользователей, идентификатор каждого документа - электронная почта пользователя. при входе пользователя в систему я хочу проверить, есть ли документ в коллекции пользователей, который уже содержит это электронное письмо в качестве идентификатора документа (если пользователь действительно зарегистрирован).
Я использую 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
, все работает нормально. Все, что я хочу, это проверить, что документ существует.