Моя цель - позволить пользователю только читать и записывать свои собственные отправленные данные.
При отправке данных я могу их получить, но в настоящее время они доступны для просмотра всем пользователям.
ИспользованиеНовое правило безопасности в Firestore:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, update, delete: if request.auth.uid == userId;
allow create: if request.auth.uid != null;
}
}
}
Я получаю Uncaught Error in onSnapshot: FirebaseError: Missing or insufficient permissions.
в консоли на Chrome, хотя моя коллекция называется users
, а мой идентификатор документа - пользовательский uid.
ЗдесьЯ использую интерполяцию и v-for для отображения данных: <sidebar-link id="user.uid" :to="
/ $ {user.title} " :name="
$ {user.title} " icon="tim-icons icon-atom" v-for="(user) in users" :key="user.title"/>

Здесь я пытаюсь получить данные из firestore:
created () {
db.collection('users').onSnapshot(res => {
const changes = res.docChanges()
changes.forEach(change => {
if (change.type === 'added') {
this.users.push({
...change.doc.data(),
id: change.doc.id
})
}
})
})
}
добавление оператора if в read, update and delete
, очевидно, позволяет мне снова увидеть данные, ноэто также позволяет всем пользователям видеть это, а не безопасность, к которой я стремлюсь.