我希望能够限制用户只列出他们创建的文档。用户ID存储在用户字段中显然我可以做
db.collection('projects').where('user', '==', firebase.auth().currentUser.uid)
..但任何精通技术的用户都可以删除过滤器并获取所有内容。
我限制访问规则,如
match /projects/{project} {
allow read,update: if request.auth.uid == resource.data.user;
allow create;
}
但这不起作用,你根本无法列出。
有没有办法在不创建用户集合中用户条目的子集合的情况下执行此操作?我真的更喜欢把它们放在一个地方。当然这是一个非常常见的情况。
假设您将user_id存储在firestore中的“user”字段中。您可以使用
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
db.collection("projects").whereEqualTo("user", uid)...
在省略号之后,您可以将.get()与onSuccesss或onComplete一起使用,或者添加Snapshot侦听器。