firebase - Firestore 安全规则 - 适用于 SIM 但不适用于代码(缺少检查父文档 ID 的权限)
问题描述
我的 Firestore 设置如下所示:
match /Profile/{profile}/Sites/{site} {
allow create : if request.auth.uid == profile;
}
我希望仅在用户的配置文件下创建文档!所以我正在寻找这样的东西,但它不起作用,我希望上面填充配置文件 ID。
以下工作,但它不会检查该网站是否仅在该用户下创建
allow create : if exists(/databases/$(database)/documents/Profile/$(request.auth.uid));
更新:我在模拟器中的“创建”文档上尝试了以下条件,它在那里工作:
Profile/*myUIDHere*/Sites/{site}
我在模拟器上工作的安全规则是:
match /Profile/{profile}/Sites/{site} {
allow create : if request.auth.uid == profile;
}
但是当我从手机运行代码时它不起作用 - 我丢失或权限不足错误。我正在使用的代码如下:
Firestore.instance
.collection('Profile/${currentFirebaseUser.uid}/Sites')
.document(site.uID)
.setData(site.toJson())
解决方案
推荐阅读
- php - 在特定时间范围内显示数据库实体
- amazon-web-services - amazon emr - 创建集群是否使用数据传出?
- cuda - CUDA:在减和期间计算所有部分和的方法
- google-app-engine - 使用 gcloud app deploy 部署 GAE Flex 时出错
- android - React Native Maps - OnRegionChange 使地图结结巴巴
- angular - 使用 *ngFor 时的两列项目符号列表
- rest - 使用soapUI时监控数据包
- c# - 找不到也无法使用 System.Web.Services.dll
- python - 在 GMail API 中,使用 Python 3,我如何跳到结果的最后一页?
- crystal-reports - Crystal Reports 11:查找数据被过滤掉的位置