У меня проблемы с настройкой правил облачного хранилища файлов.
Я пытаюсь получить доступ к полю внутри документа, внутри коллекции ... Как это
Future<void> fetchAndSetProducts([bool filterByUser = false]) async {
final filterString = filterByUser
? Firestore.instance.collection('products').getDocuments()
: Firestore.instance
.collection('products')
.where('creatorId', isEqualTo: userId)
.getDocuments();
try {
QuerySnapshot prodSnap = await filterString;
if (prodSnap == null) {
return;
}
'creatorId' - это поле в базе данных / products / {productId}
Я хочу различать пользователей и разрешать им только обновлять и удалять файлы, созданные в базе данных / products /. .., но я также хочу, чтобы они могли просматривать все документы внутри /products/...
bool, который я настроил для fetchAndSetProducts, - это то, что я надеюсь использовать для фильтрации некоторых изинформационное приложение, например, позволяющее использовать только для просмотра определенные продукты (те, которые содержат их userId). Я не уверен, что мне также нужно настроить индексирование для «продуктов», но я уже сделал это на всякий случай.
Итак, я хочу заблокировать все файлы, которые не были созданыuser.
Я думал, что это будет что-то вроде этого:
service cloud.firestore {
match /databases/{database}/documents {
match /products/{productId}/documents{
allow read: if resource.data.creatorId == request.auth.uid;
}
}
}
buuut, который не работает, а также мой код на стороне приложения для фильтрации по пользователю ..