Firestore规则可在模拟器中运行,但不能使用admin SDK

时间:2020-03-31 13:09:56

标签: firebase google-cloud-firestore firebase-security

我仅在后端(应用程序引擎标准-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实例的规则。

0 个答案:

没有答案