创建一个用户来读取云消防存储中的所有这些数据



我正在尝试创建一个帐户,该帐户可以读取每个文档中的所有数据。目前的设置是,每个经过身份验证的人只能读取他/她的数据。我希望这个特定的用户能够看到每个人的数据:

这就是我试图做的,以纠正一个规则,即如果特定用户登录,他可以读取和写入所有文档:

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {

match /{document=**} {
allow read, write: if request.auth.uid != null;
}
match /users/{uid}/jobs/{document=**}{
allow read, write: if request.auth.uid == uid;
}
match /users/{uid}/entries/{document=**}{
allow read, write: if request.auth.uid == uid;
}

if (uid == utettoeet){
allow read, write;
} 
}
}

请注意,我刚刚开始燃烧。

Widget _buildContents(BuildContext context) {
final database = Provider.of<Database>(context);
return StreamBuilder<List<Job>>(
stream: database.jobsStream(),
builder: (context, snapshot) {
return ListItemsBuilder<Job>(
snapshot: snapshot,
itemBuilder: (context, job) => Dismissible(
key: Key('job-${job.id}'),
background: Container(color: Colors.red),
direction: DismissDirection.endToStart,
onDismissed: (direction) => _delete(context, job),
child: JobListTitle(
job: job,
onTap: () => JobEntriesPage.show(context, job),
),
),
);
},
);

}

[更新]使用以下代码,具有uidutettoeet的已验证用户可以读取和写入任何集合中的任何文档,并且任何已验证用户都可以读取和编写自己的文档,但不能读取和写入其他用户的文档:

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid == "utettoeet";
}
match /users/{uid}/{collection}/{document=**}{
allow read, write: if request.auth.uid == uid;
}
}
}

最新更新