用户如何在vue.js上使用Firestore读取/写入自己的数据?

时间:2019-06-04 20:03:52

标签: javascript firebase vue.js google-cloud-firestore firebase-security-rules

我的目标是让用户仅读写自己提交的数据。

提交数据时,我可以提取它,但是当前所有用户都可以看到它。

在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.,而我的文档ID是用户uid,我也会在chrome控制台上看到users

在这里,我使用插值法和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
                })
              }
            })
          })
        }

read, update and delete上添加if语句显然可以使我再次看到数据,但也可以使所有用户看到它,而这并不是我要针对的安全性。

0 个答案:

没有答案