我已经设置了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()
});
即使可以使用上面定义的规则阻止数据库访问,我也可以将新用户添加到用户集合中,但是在模拟器中这些规则有效。 我缺少任何设置或预配置吗?请指导我修复该问题。
答案 0 :(得分:0)
所有服务器SDK(包括用于节点的“ @ google-cloud / firestore”)都绕过安全规则。规则仅在使用适用于这些平台的Firebase专用SDK从Web或移动客户端(例如,Android,iOS,浏览器JavaScript)访问时适用。