【问题标题】:Firebase Cloud Function only callable from "Back end"Firebase 云功能只能从“后端”调用
【发布时间】:2020-01-28 00:35:12
【问题描述】:

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

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 公开该函数,而只允许通过 Admin Console 或 Firebase CLI 或类似的方式调用它。

有没有办法做到这一点?

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    简短回答:

    更长的讨论:

    您不能拥有私人功能 - 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 提供了代码示例,说明您的管理员帐户如何代表用户执行操作并受限于该用户的权限集。使用这种方法(结合适当的数据库/存储安全规则)应该可以满足大多数用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 2018-06-24
      • 2018-09-06
      • 2021-04-08
      • 2018-11-29
      • 2018-05-09
      相关资源
      最近更新 更多