【发布时间】:2018-07-25 12:47:36
【问题描述】:
我使用 nodejs、express、firebase 函数、firestore 开始了一个基于 Web 的项目,并最终想使用 firebase 托管。到目前为止,我已经能够将所有内容保留在服务器端,直到达到授权和身份验证。我正在使用模型视图控制器结构,因此对 firestore 的调用是在服务器端进行的,因此 firestore 安全规则不起作用。 Firestore 安全规则仅在您访问 Firestore 客户端时才有效。
我可以像使用 Cloud Firestore 安全规则一样使用 google cloud 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 操作?
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions firebase-admin google-cloud-iam