【发布时间】:2020-03-29 14:56:01
【问题描述】:
错误:在 firestore.rules 发生任何变化时,Firestore 模拟器输出:
i firestore: Change detected, updating rules...
**⚠ firestore.rules:0:0 - ERROR Rules content empty. Compilation aborted.**
✔ firestore: Rules updated.
尝试过的平台: WSL 以及 virtualbox 下的 Ubuntu VM
代码实验室: https://google.dev/codelabs/firebase-emulator-test-rules
当前 firestore.rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /carts/{cartID} {
allow create: if request.auth.uid == request.resource.data.ownerUID;
allow read, update, delete: if request.auth.uid == resource.data.ownerUID;
}
match /carts/{cartID}/items/{itemID} {
allow read, write: if get(/databases/$(database)/documents/carts/$(cartID)).data.ownerUID == request.auth.uid;
}
match /items/{itemID} {
allow read; // Users can read items
// In a production app, don't allow unconditional write access!
allow create; // For the codelab, client app uses this to add seed data.
}
}
}
Firebase 控制台上的项目配置: 仅对默认项目进行了两项修改,启用匿名身份验证(每个 codelab),并在生产模式下添加 firestore。
...我已经用谷歌搜索了这个 “firestore.rules:0:0 - 错误规则内容为空。编译中止。” 错误,但什么也没出现。其他人看到了吗?
【问题讨论】:
-
出于好奇,您是否尝试过从一开始就删除
rules_version = '2';?我的理论是模拟器无法识别该指令是一个错误。
标签: firebase google-cloud-firestore firebase-security