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()                    

    });

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


慕少森
浏览 129回答 1
1回答

至尊宝的传说

所有服务器 SDK(包括节点的“@google-cloud/firestore”)都绕过安全规则。规则仅适用于使用这些平台的 Firebase 特定 SDK 从网络或移动客户端(例如,Android、iOS、浏览器 JavaScript)访问时。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript