firebase - 授予多个用户访问权限的 Firebase 安全规则不起作用
问题描述
我正在尝试实施 Firebase 安全规则,让用户可以访问“项目”文档。我有一个项目集合,每个项目都有一个带有 UserID 的成员集合。用户已通过身份验证。
我的结构看起来像这样:
结构
这是我的安全规则,但它不起作用。
谁能帮我 ?我究竟做错了什么 ?
//Firebase 规则
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /projects/{projectID} {
allow read, get, write: if request.auth.uid != null && exists(/databases/$(database)/documents/projects/{project}/members/$(request.auth.uid));
}
}
}
//颤振调用
Stream<List<ProjectModel>> getUserList() {
print("getUSer");
return FirebaseFirestore.instance.collection('projects').snapshots().map(
(snapShot) => snapShot.docs
.map((document) => ProjectModel(
name: document.data()['name'],
owner: document.data()['owner'],
description: document.data()['description']))
.toList());
}
解决方案
试试下面的例子:
可以读取或写入 Projects Collection 的经过身份验证的用户:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /projects/{projectID} {
allow read, write: if request.auth != null && exists(/databases/$(database)/documents/projects/{projectID}/members/$(request.auth.uid));
}
}
}
推荐阅读
- android - ProgressDialog 显示时间 - Android 工作室
- php - 如何在单选按钮上禁用文本字段,在另一个单选按钮上启用文本并使用链接清除这三个
- sql - 从 PostgreSQL 中的输入数组创建一个数组
- django - Django模型不允许一对多关系
- javascript - 制作一个按钮来创建盒子
- listview - JAVAFX ListView - 是否可以隐藏 ID“列”,或者我应该使用单列 TableView?
- python - 如何在python中将9个月零7天添加到日期“27-05-2018”
- security - 相互认证 - 设置、流程、验证
- rx-java2 - RxJava 运算符将随机大小的列表流分割成统一大小的列表,而不会丢失项目
- sass - 覆盖时未应用 sass 样式