我已经使用 nodejs、express、firebase 函数、firestore 开始了一个基于 Web 的项目,并最终想使用 firebase 托管。到目前为止,我已经能够将所有内容保留在服务器端,直到达到授权和身份验证。我正在使用模型视图控制器结构,因此对 firestore 的调用是在服务器端进行的,因此 firestore 安全规则不起作用。Firestore 安全规则仅在您访问 Firestore 客户端时才有效。
我可以像使用 Cloud Firestore 安全规则一样使用谷歌云 IAM(身份和访问管理)来控制用户读取/写入 Firestore 的能力级别吗?
如果是这样,它就像在 MySQL 中设置不同的用户一样工作:
grant INSERT, UPDATE, SELECT on name_of_database.* to 'admin_webuser'@'%';
grant SELECT on name_of_database.* to 'user_webuser'@'%';
因此,当管理员登录时,他们使用 admin_webuser 连接到数据库,如果其他人登录,他们使用 user_webuser 连接到数据库。
我可以使用 nodejs、express、firebase 功能实现上述设置以使用 IAM 连接到 Firestore?
目前在我的模型文件夹中,我通过以下方式调用 firestore:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
我假设我可以admin.initializeApp(functions.config().firebase);
根据已设置的 IAM 规则更改部件以访问不同的配置文件?那么,当管理员登录我的网站时,我可以使用带有不同配置文件的模型文件夹吗?
我已经阅读了 IAM 上的文档,但它没有任何意义。有人可以给我建议:
如何设置可以使用 IAM 在 Firestore 上执行 CRUD 的管理员?
然后我将如何安排,以便当管理员在我的网站上登录时,只有他们可以在 Firestore 上执行 CRUD 操作?