【问题标题】:Javascript - Firebase Functions on how to get user idJavascript - 关于如何获取用户 ID 的 Firebase 函数
【发布时间】:2018-08-10 04:21:05
【问题描述】:

我想使用 firebase-tools 在 Firebase 上定义自定义函数。有没有办法从firebase-functions 获取 userId?

就这个代码示例来说,是否可以获取发送请求的用户?

const functions = require('firebase-functions');

    exports.helloWorld = functions.https.onRequest((request, response) => {
     response.send("Hello from Firebase!");
    });

我尝试使用以下代码获取它,但未成功functions.auth.user().uid

我对 js 和 firebase 都很陌生,所以请放轻松,我正在努力学习。

【问题讨论】:

    标签: javascript firebase google-cloud-functions google-authentication


    【解决方案1】:

    您过度简化了 HTTP 触发器的工作方式。他们对最终提出请求的实体一无所知。它可能是一个用户,或者只是一些自动化程序。用户无需经过身份验证即可访问您的功能。

    如果您想将 HTTP 触发器的访问权限限制为仅经过身份验证的用户,您可以尝试this other question 中所述的操作。 official sample code 显示您需要做什么。

    底线是这样的。除非您采取措施将用户是谁(通过 id 令牌标识)安全地传输给函数,否则您真的不知道他们是谁。

    【讨论】:

    • 感谢您提供的信息丰富的回答。绝对有用。
    【解决方案2】:

    认为我从这篇文章中找到了更好的答案: https://medium.com/super-declarative/dev-snack-testing-firebase-cloud-functions-with-user-id-tokens-83841d3f06c。 http函数基本上有两种方式

    1. functions.https.onRequest :如果可用,您可以从请求中获取令牌,然后使用 firebase admin api 获取用户 UID;
    2. functions.https.onCall 用于经过身份验证的请求:您从公开的上下文对象中获取它

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 2019-08-12
      • 2018-05-28
      • 2020-02-28
      • 2019-04-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      相关资源
      最近更新 更多