我的目标是让用户仅读写自己提交的数据。
提交数据时,我可以提取它,但是当前所有用户都可以看到它。
在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"/>
在这里,我正尝试从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语句显然可以使我再次看到数据,但也可以使所有用户看到它,而这并不是我要针对的安全性。