我已经阅读了Firebase网站上的资料,并尝试在我的角度项目中实施Firebase规则。在使用公共规则进行读写操作之前,我已经进行了测试,并且效果很好。现在,当我尝试写东西时,它给了我拒绝的权限。当然,我在Firebase中放置的路径有问题,但是我找不到答案。
我的项目应以这种方式工作:
用户可以编写/创建文档,生成路径Relatorios / {user UID} / RSE2019 / 001。从Firebase捕获了用户uid。 RSE2019标识年份,也就是说,它可以在{user UID}文档中包含许多路径:RSE2020,RSE 2018等。最后,001标识报告的数量,换句话说,它可以是001至999之间的任何数字。因此,集合RSEyyyy中可能有许多文档。
到目前为止,我已经尝试了一些代码。最后一个是这样:
service cloud.firestore {
match /databases/{database}/documents {
match /Relatorios/{userId}/{document=**} {
allow create: if request.auth.uid != null;
allow read, update: if request.auth.uid == userId;
}
}
}
我的实际结果是任何用户的权限缺失或错误。我希望用户可以创建文档并进行更新/阅读(如果他是创建者)。