Я пытаюсь записать правила безопасности в моей базе данных Firestore, чтобы разрешить чтение документов в коллекции со значением status
как published
.Но он не позволяет читать какой-либо документ для коллекции после публикации правила.
Я следую настройкам разрешений, описанным в официальном документе.https://firebase.google.com/docs/firestore/security/rules-conditions
Но он не работает должным образом.
service cloud.firestore {
match /databases/{database}/documents {
match /articles/{articleId} {
allow read: if resource.data.status == 'published';
}
}
}
Я использую следующий код React + Redux для запроса документов:
export const getArticles = (limit = 25) => {
return (dispatch) => {
dispatch({ type: ARTICLES });
const db = firebase.firestore();
const query = db.collection('articles')
.orderBy('createdAt', 'desc')
.limit(limit);
query.get()
.then((snapshot) => {
const dataArray = [];
snapshot.forEach(doc => {
dataArray.push(mergeDocIdAndData(doc.id, doc.data()));
});
getArticlesSuccess(dispatch, dataArray)
.then(() => dispatch(push('/articles')));
})
.catch(() => getArticlesFail(dispatch));
};
}