firebase - Firestore 规则在模拟器中工作但不使用 admin sdk
问题描述
我仅从后端(应用引擎标准 - node.js)在 Datastore 模式下使用 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 auth uid。
只是为了澄清,我实际上是从我的计算机连接到 Firestore。尚未测试来自应用引擎实例的规则。
解决方案
推荐阅读
- php - 当产品有选项时如何添加到购物车使用 API opencart 3.0.3.6
- javascript - 如何循环添加所有本地存储项?
- javascript - 如何使用多维数组获取输入名称元素
- arrays - 停止数组在末尾打印 0
- pandas - 将多个熊猫列附加到列表中
- cassandra - 如何更新 cassandra 冻结的 UDT 列中的字段?
- wordpress - 有没有一种方法可以防止将鼠标悬停在标题而不是导航栏上?
- xamarin.forms - 在 Azure 通知中心配置中心和命名空间
- sql - 将数据透视表中的查询输出与 PostgreSQL 相结合
- python - 烧瓶应用程序路由中的可选参数以及必需参数