我仅在后端(应用程序引擎标准-node.js)以数据存储模式使用Firestore
我在Firestore控制台中指定了这些简单规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
match /users/{userID} {
function currenciesValid() {
return request.resource.data.currencies.gold.balance is int &&
request.resource.data.currencies.gold.balance >= 0 &&
request.resource.data.currencies.mana.balance is int &&
request.resource.data.currencies.mana.balance >= 0
}
allow write: if currenciesValid();
}
}
}
在模拟器中运行(创建和更新)时,规则将按预期工作。
但是,部署之后,它对应用程序没有影响,例如,我可以创建1.5的黄金余额。
知道发生了什么吗?
我的文档路径是users / user_ {uid},其中uid是Firebase身份验证uid。
为澄清起见,我实际上是从计算机连接到Firestore。尚未测试来自App Engine实例的规则。