【发布时间】:2019-07-28 19:47:40
【问题描述】:
我使用具有作业 ID (XAXhAJh71hHbe1fY7blZ) 的作业文档创建了一个作业集合,并添加了以下安全规则:
match /{document=**} {
allow read, write: if false;
}
match /jobs/{jobId} {
allow create: if request.auth.uid != null;
}
根据docs 创建“适用于写入不存在的文档”。 即如果文档存在,则该操作应被拒绝。
但是,Firestore 模拟器允许创建现有文档 ID。 即,即使文档存在于数据库中,模拟器也允许在 /jobs/XAXhAJh71hHbe1fY7blZ 上执行创建。
【问题讨论】:
-
您的完整创建路径是什么?类似“/jobs/O7QCmibazkIBBMgFH1hl/documents/......”
-
可以看到截图链接。路径是 /jobs/XAXhAJh71hHbe1fY7blZ,它会在该对象上创建一个数据对象,即使该文档已经存在(违反安全规则)
标签: google-cloud-firestore firebase-security