Firebase Cloud Function仅可从“后端”调用

时间:2019-09-27 16:53:56

标签: firebase google-cloud-functions

我想创建一个不会自动触发的Firebase Cloud Function,并且只能用于管理目的。我知道我可以生成一些随机密钥并将其存储在配置中:

exports.someFunction = functions.https.onRequest((req, res) => {
  if (req.query.key !== functions.config().access.key) {
    res.status('401').send('Unauthorized');
    return;
  }
  // actual body here
});

但这似乎很脆弱,因为我必须自己维护所有密钥。我宁愿完全不通过HTTPS公开该功能,而只能通过管理控制台或Firebase CLI或类似的方式进行调用。

有办法吗?

1 个答案:

答案 0 :(得分:2)

简短答案:

更长的讨论:

您不能拥有私有功能-每个Firebase员工Doug Stevenson Firebase cloud functions are only for exported functions with specifically defined triggers。您无法部署常规的JavaScript函数,然后以某种方式从Firebase控制台或CLI神奇地调用它。

您的功能具有可以从您的网站上调用,也可以从one of these triggering events上调用。到目前为止,还没有用于从Firebase控制台或CLI调用云功能的实现功能。

虽然不是直接回答您的问题,但是Doug为this walk-through提供了代码示例,说明您的管理员帐户如何代表用户执行操作并限于该用户的权限集。使用这种方法(与适当的数据库/存储安全规则结合使用)应该可以满足大多数用例。