如何在 Firebase 函数中获取提供程序访问令牌?

2023-12-13

我计划编写有关身份验证用户创建的 Firebase 函数。我的目标是获得 Facebook 用户页面的长期访问令牌。

为此,我需要 Firebase 函数中的用户访问令牌。下面尝试过..,

exports.saveLongLiveToken = functions.auth.user().onCreate(event => {
  console.log(event.providerData)
})

我虽然providerData将拥有有关Facebook凭证的信息,但我只得到了未定义的信息。

注意:在这种情况下,我得到了下面的

{ data: 
   { displayName: 'Rob',
     email: '[email protected]',
     metadata: 
      { createdAt: 2017-08-23T18:58:34.000Z,
        lastSignedInAt: 2017-08-23T18:58:34.000Z },
     photoURL: 'http...',
     providerData: [ [Object] ],
     uid: 'xfff...' },
  eventId: 'xxx',
  eventType: 'providers/firebase.auth/eventTypes/user.create',
  notSupported: {},
  resource: 'projects/fiobot-4fa94',
  timestamp: '2017-08-23T18:58:34.571Z',
  params: {} }

如果您使用 Firebase Auth SignInWithPopup/Redirect 登录,则您只能在登录后获得访问令牌。 Firebase Auth 不会为您存储它(也不会存储 Facebook 刷新令牌)。您需要将其保存在数据库中,只有指定的用户才能访问它,并且通过 Firebase Functions 的 Admin SDK 可以允许您访问它。如果您认为 Firebase Auth 应该管理提供商的 OAuth 令牌,请通过 Firebase 支持渠道提交请求。 如果这对于您的应用程序功能至关重要,您可以使用 Facebook API 登录用户并获取 Facebook 访问令牌并使用firebase.auth().signInWithCredential(firebase.auth.FacebookAuthProvider.credential(fbAccessToken))Facebook 客户端 API 可以为您管理 OAuth 令牌。您还可以在需要时使用后端 OAuth node.js 库通过 Firebase 函数刷新 Facebook 令牌。不过,您需要获取 Facebook 刷新令牌。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Firebase 函数中获取提供程序访问令牌? 的相关文章

  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • NoSuchMethodError:尝试调用非函数,例如 null:'dart.global.firebase.auth'

    Flutter 新手 我怀疑在尝试设置 Firebase Auth 时错过了一些非常简单的事情 一直在网上寻找解决方案 大多数人要求您仔细检查 firebase auth js 是否正确包含在 index html 文件中 这样就完成了 下
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • firebase :: 无法读取 null 的属性“props”

    你好 我正在尝试将react router与firebase一起使用 但它给了我这个错误 无法读取 null 的属性 props 这正是代码 我正在其中使用我的反应路由器 向下代码位于作为登录面板组件的组件上 else if this em
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构

随机推荐

  • 在 C# 中使用 Windows 应用程序执行 http 方法

    有许多网站在表单提交时调用脚本并使用 HTTP POST 或 GET 传递参数 使用 Web 调试器我发现正在传递的参数 现在我希望通过我的 C Windows 应用程序做同样的事情 我怎样才能实现这样的功能 我目前正在 C 中使用 Htt
  • ggplot2 生成的切片图

    我想知道是否可以将图形分别切片为使用 ggsave 生成 的 png 文件 如果我不想使用默认的图例或标题并将其设置为 FALSE 则会留下大量空白 那么有没有一种 R 方法可以将文件剪切到图形本身上方和下方几个像素呢 提前谢谢 你可以改变
  • 使用 str.contains 忽略 NaN

    我想找到包含字符串的行 如下所示 DF DF col str contains foo 但是 这会失败 因为某些元素是 NaN ValueError 无法使用包含 NA NaN 值的向量进行索引 所以我诉诸于混淆 DF DF col not
  • 安装 OS X Mavericks 后出现 RMagick 错误

    我在 OS X Mountain Lion 中安装了 RMagick 并完美运行 我刚刚安装了 OS X Mavericks 当我尝试运行时rails s 我收到此错误 rvm gems ruby 2 0 0 p0 myapp gems a
  • BProlog 8.1 中的制表性能不均匀

    我用表格功能做了一些实验b prolog8 1 版本 我对观察到的性能感到非常惊讶 这是我使用的代码 它计算的数量Collatz steps N减少一些正整数所需的I向下1 table posInt CollatzSteps 2 remov
  • 尝试通过原始 IP 数据包发送数据时的 EMSGSIZE

    我的代码将原始 IP 数据包发送到12 12 12 12并失败 因为EMSGSIZE 我认为它根据以太网 MTU 限制我的数据包 但它应该发送 我尝试将数据包发送至127 0 0 1这工作得很好 但是当我将数据包发送到非本地 IP 时 就会
  • 具有多个分隔符的 sql-maven-plugin

    我正在使用 sql maven plugin 在多个数据库上执行一些 MySQL 脚本 我想在同一个 SQL 脚本中部署表 数据 触发器 事件和存储过程 我的行分隔符有问题 因为对于 INSERT 或 CREATE 我使用 但对于我的触发器
  • ServicePointManager.DefaultConnectionLimit 返回 Int32.MaxValue

    出于诊断目的 我正在记录 ServicePointManager DefaultConnectionLimit 然而奇怪的是 它似乎返回 Int32 MaxValue 即 2147483647 这似乎与MSDN 文档就此主题而言 Servi
  • 在信号处理的上下文中到底哪些变量需要 sig_atomic_t ?

    这是一个简单的玩具程序 使用volatile sig atomic t include
  • 将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式

    巧合的是 这个问题在上周出现了两次 客户有一个想要保留的现有 PHP 网站 他们还拥有或即将拥有一些 ASP net 网页 希望将其集成到现有站点中 使其显示为单个站点 我们想到了以下几种可能性 使用 IFrame 将所有 html 菜单复
  • dbModel 读取资源在 Magento 版本 1.3.2.4 中未实现 Zend_Db_Adapter_Abstract

    我为我的 Magento 项目创建了一个自定义模块 该模块适用于 Magento 1 6 X 但是当我在 Magento 版本 1 3 2 4 中安装此扩展时 Magento 抛出以下错误 dbModel read resource doe
  • 下载一张带有 HTML 图像内容的笔记页面

    当我们使用 one note API 图像源获取 HTML 形式的页面内容时 图像源似乎无法正常工作 HTML 内容中图像源的末尾有一个 value 当一个笔记页面有图像时 我们该如何处理 Ex img 宽度 649 高度 587 src
  • Spark:使用scala从s3读取csv文件

    我正在编写一个 Spark 作业 尝试使用 scala 读取文本文件 以下内容在我的本地计算机上运行良好 val myFile myLocalPath myFile csv for line lt Source fromFile myFil
  • 执行任何 IO/Stream 时 C++ JNI 崩溃/挂起

    当我尝试编译 C 代码以在 JAVA 端使用时 我似乎遇到了一个大问题 当我尝试执行任何与 IO Stream Manipulation 相关的操作时 JVM 似乎崩溃了 有时 就像我每 10 次运行应用程序时 JNI 可以 100 处理所
  • R dplyr:非标准评估难度。想要在过滤器和变异中使用动态变量名称

    我创建了一个可重现的示例来说明我在 R dplyr 中进行非标准评估时遇到的问题 我想在下面的场景中使用动态变量名称 Given a data frame of patient data I need to find records con
  • Outlook VBA 打开 Excel

    我正在尝试从 Outlook 打开现有的 Excel 工作表 我可以看到工作簿打开 然后又立即关闭 我将 Excel Application 设置为可见 有任何想法吗 这是代码 Function openNewForm toDoSubjec
  • Spring MVC 转换方法

    我有车辆服务 其中包括零件清单 添加新服务不是问题 查看服务也不是问题 但是当我尝试实现编辑时 它不会预先选择零件列表 所以 认为这是 Thymeleaf 问题 我发布了问题here 我得到的答案是尝试实现 spring 转换服务 我就是这
  • 获取 R 中每组的最后一行[重复]

    这个问题在这里已经有答案了 我有一些结构类似于 a lt data frame ID c A A B B C C NUM c 1 2 4 3 6 9 VAL c 1 0 1 0 1 0 我正在尝试对其进行排序ID and NUM然后得到最后
  • 有效删除 NumPy 中的行

    我有一个很大的 numpy 数组 其中有很多 ID 值 称之为 X X id rating 1 88 2 99 3 77 4 66 我还有另一个 坏ID 的numpy数组 它表示我想从X中删除的行 B 2 3 所以当我完成后 我想 X id
  • 如何在 Firebase 函数中获取提供程序访问令牌?

    我计划编写有关身份验证用户创建的 Firebase 函数 我的目标是获得 Facebook 用户页面的长期访问令牌 为此 我需要 Firebase 函数中的用户访问令牌 下面尝试过 exports saveLongLiveToken fun