【发布时间】:2021-10-28 05:02:27
【问题描述】:
我想实现一个可调用 Firebase 云函数来修改 Firestore 上的现有文档。当我在网上搜索时,我发现我需要为我的服务器添加管理员权限然后调用它:
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
但在文档中(https://firebase.google.com/docs/admin/setup)它说 admin SDK 提供了操作 Firebase 平台中基本上所有内容的权限。我不想将所有权限授予函数调用或服务器。如果我调用与用户集合相关的函数,我希望该函数能够仅操作用户集合。
我的问题是:赋予函数所有权限是否安全?逆向工程会有危险吗?如果是这样,我如何阻止非法函数调用?是否可以限制对 firebase 功能的访问?
【问题讨论】:
-
无法通过 Admin SDK 以普通用户身份访问 Firestore。在 Nicolas 对我链接的问题的回答中,他展示了使用常规 JavaScript SDK 完成您想要的功能的能力。更常见的方法是通过您自己的代码确保调用用户的授权,基于
context.auth变量,如firebase.google.com/docs/functions/… 所示
标签: node.js google-cloud-firestore google-cloud-functions firebase-admin