我想从Firestore获取数据。我在FireStore中有这些书的结构
Books --Book1.....name
.....auteur
.....user_id
.....describe
--Book2.....name
.....auteur
.....user_id
.....describe
然后用这个代码来得到它
FirebaseFirestore.instance
.collectionGroup("Books")
.get()
.then(
(res) => print("Successfully completed"),
onError: (e) => print("Error completing: $e"),
);
我在Firestore的规则中为群收集设置了这些规则。
match /{path=**}/Books/{book} {
allow read: if request.auth != null && request.auth.uid == resource.data.user_id;
}
我为这个应用程序设置了Firebase身份验证编译应用程序并登录应用程序后,当我想获取这本书时,我看到了这个错误
调用方没有执行指定操作的权限。
1条答案
按热度按时间wxclj1h51#
看起来您希望规则只过滤用户的UID等于文档的
user_id
字段的文档。规矩不是这样的文档清楚地表明规则不是过滤器。您的规则要求您的应用中的查询必须在user_id
字段上指定具有用户UID值的筛选器。其中,
uid
是用户的UID。这使得查询与规则匹配,因此现在只请求规则已授予读访问权限的文档。