用户注册时如何在 Cloud Functions for Firebase 中获取访问令牌?
How to obtain access token in Cloud Functions for Firebase when user signs up?
当客户使用 Github 登录时,我想触发一个云函数,从 Github 检索用户的个人资料数据并将其存储在实时数据库的 /users/{uid}/profile
中.
当新用户注册时,我可以触发我的云功能:
exports.fetchProfile = functions.auth.user().onCreate(event => {
// user = event.data
// uid = user.uid
// access_token = ???
// todo: request user profile from Github using access_token
// todo: save profile in /users/{uid}/profile
});
但是,我如何获得用户 access_token
来提出 Github 个人资料请求?谢谢。
我试过的:
- 在客户端,使用 FirebaseAuth 获取 Github
access_token
.
- 使用 (1) 中的
access_token
创建 Firebase credential
。
- 使用(2)中的
credential
登录,我得到一个FIRUser
成功回调,从中我可以获得uid
。
- 我将
{uid: access_token}
写入实时数据库中的队列,这反过来会触发我的云功能,该功能会执行配置文件检索。
这一切只是为了得到用户的access_token
,我可以做得更好吗?
您不能使用用户创建触发器来执行此操作。
您有多种选择:
注册后,从客户端获取access token,保存在实时数据库中指定用户可访问的位置。然后,您可以为该位置设置云函数数据库触发器。当它被触发时,您将获得访问令牌并使 API 调用 GitHub 并获取数据并用它做任何您想做的事情。
运行 一切都在客户端。由于您在客户端(浏览器)中注册后拥有访问令牌,请对 GitHub 进行 API 调用,然后将配置文件数据保存在只能由用户访问的数据库位置。如果您需要 运行 额外的管理操作,您可以添加一个云函数来触发对该位置的更改。
顺便说一句,Firebase Auth (4.0.0) 现在 returns 额外的用户数据。检查:https://firebase.google.com/docs/reference/js/firebase.auth#.UserCredential
您可以通过调用 result.additionalUserInfo.profile 或 GitHub 用户名获取额外数据:result.additionalUserInfo.username.
当客户使用 Github 登录时,我想触发一个云函数,从 Github 检索用户的个人资料数据并将其存储在实时数据库的 /users/{uid}/profile
中.
当新用户注册时,我可以触发我的云功能:
exports.fetchProfile = functions.auth.user().onCreate(event => {
// user = event.data
// uid = user.uid
// access_token = ???
// todo: request user profile from Github using access_token
// todo: save profile in /users/{uid}/profile
});
但是,我如何获得用户 access_token
来提出 Github 个人资料请求?谢谢。
我试过的:
- 在客户端,使用 FirebaseAuth 获取 Github
access_token
. - 使用 (1) 中的
access_token
创建 Firebasecredential
。 - 使用(2)中的
credential
登录,我得到一个FIRUser
成功回调,从中我可以获得uid
。 - 我将
{uid: access_token}
写入实时数据库中的队列,这反过来会触发我的云功能,该功能会执行配置文件检索。
这一切只是为了得到用户的access_token
,我可以做得更好吗?
您不能使用用户创建触发器来执行此操作。 您有多种选择:
注册后,从客户端获取access token,保存在实时数据库中指定用户可访问的位置。然后,您可以为该位置设置云函数数据库触发器。当它被触发时,您将获得访问令牌并使 API 调用 GitHub 并获取数据并用它做任何您想做的事情。
运行 一切都在客户端。由于您在客户端(浏览器)中注册后拥有访问令牌,请对 GitHub 进行 API 调用,然后将配置文件数据保存在只能由用户访问的数据库位置。如果您需要 运行 额外的管理操作,您可以添加一个云函数来触发对该位置的更改。
顺便说一句,Firebase Auth (4.0.0) 现在 returns 额外的用户数据。检查:https://firebase.google.com/docs/reference/js/firebase.auth#.UserCredential 您可以通过调用 result.additionalUserInfo.profile 或 GitHub 用户名获取额外数据:result.additionalUserInfo.username.