Это может быть вопрос для новичков, но как мне настроить свои правила?
Я создал веб-сайт, который считывает данные из хранилища огня, и мне нужно, чтобы данные были прочитаны кем угодно, но могут быть только отредактированный мной. Это пример кода, который я пробовал:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Allow public read access, but only content owners can write
match /some_collection/{document} {
allow read: if true
allow create: if request.auth.uid == request.resource.data.author_uid;
allow update, delete: if request.auth.uid == resource.data.author_uid;
}
}
}
, а также:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Allow only authenticated content owners access
match /some_collection/{userId}/{documents=**} {
allow read: if true;
allow write: if request.auth != null && request.auth.uid == userId
}
}
}
Для обоих из них мой веб-сайт не смог получить данные из базы данных.
Изменить: чтобы показать запрос, который не работает. Я использовал для этого vueJS:
mounted() {
const db = this.$firebase.firestore();
let storage = this.$firebase.storage();
let storageRef = storage.ref().child('images');
db
.collection('projects')
.onSnapshot(snap => {
const info = [];
snap.forEach(doc => {
let data = doc.data();
let imgName = data.img
storageRef.child(imgName)
.getDownloadURL().then((url) => {
data.img = url
// console.log(data.img)
}).catch((error) => {
// Handle any errors
console.log(error)
});
data.index = doc.id;
info.push(data);
});
this.info = info;
});
},