Как пользователь может читать / записывать собственные данные с помощью firestore на vue.js? - PullRequest
0 голосов
/ 04 июня 2019

Моя цель - позволить пользователю только читать и записывать свои собственные отправленные данные.

При отправке данных я могу их получить, но в настоящее время они доступны для просмотра всем пользователям.

ИспользованиеНовое правило безопасности в 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"/>

enter image description here

Здесь я пытаюсь получить данные из 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, очевидно, позволяет мне снова увидеть данные, ноэто также позволяет всем пользователям видеть это, а не безопасность, к которой я стремлюсь.

...