Firestore数据库安全规则仅在模拟器中有效

时间:2019-09-30 13:39:04

标签: javascript firebase google-cloud-firestore

我已经设置了Firestore数据库,并使用firebase cli向该数据库发布了一些安全规则。但是规则仅在模拟器中有效,从客户端来看这些规则不起作用。即使我阻止对数据库的所有读/写访问,客户端(使用firestore nodejs客户端库)也不会反映出任何更改。以下规则本身不适用于客户端。

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
   match /{document=**} {
      allow read, write: if false;
    }
  }
}

在我的nodejs代码中

  const {Firestore} = require('@google-cloud/firestore');
    const db = new Firestore();
    db.collection("users").add({
        usertype: req.body.usertype,
        email : req.body.email,
        fullname: req.body.fullname,             
        created_on : new Date()                    
    });

即使可以使用上面定义的规则阻止数据库访问,我也可以将新用户添加到用户集合中,但是在模拟器中这些规则有效。 我缺少任何设置或预配置吗?请指导我修复该问题。

1 个答案:

答案 0 :(得分:0)

所有服务器SDK(包括用于节点的“ @ google-cloud / firestore”)都绕过安全规则。规则仅在使用适用于这些平台的Firebase专用SDK从Web或移动客户端(例如,Android,iOS,浏览器JavaScript)访问时适用。