Swift 当用户注册时,如何在Firebase的云函数中获取访问令牌?
当客户端登录Github时,我想触发一个云函数,从Github检索用户的配置文件数据,并将其存储在实时数据库中的Swift 当用户注册时,如何在Firebase的云函数中获取访问令牌?,swift,firebase,github,firebase-authentication,google-cloud-functions,Swift,Firebase,Github,Firebase Authentication,Google Cloud Functions,当客户端登录Github时,我想触发一个云函数,从Github检索用户的配置文件数据,并将其存储在实时数据库中的/users/{uid}/profile 当新用户注册时,我可以使用以下方式触发我的云功能: exports.fetchProfile = functions.auth.user().onCreate(event => { // user = event.data // uid = user.uid // access_token = ??? // todo:
/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
});
但是,我如何获得用户发出Github配置文件请求所需的访问\u令牌
?谢谢
我尝试过的:
access\u令牌
access_令牌创建Firebase凭证
凭证登录,我在成功回调中获得一个FIRUser
,我可以从中获得uid
{uid:access\u token}
写入实时数据库中的队列,这反过来会触发执行概要文件检索的云函数所有这些只是为了获得用户的
访问\u令牌
,我能做得更好吗?您不能使用用户创建触发器。
您有多种选择:
您可以通过调用result.additionalUserInfo.profile或GitHub用户名:result.additionalUserInfo.username来获取附加数据。您不能使用用户创建触发器。 您有多种选择:
您可以通过调用result.additionalUserInfo.profile或GitHub用户名:result.additionalUserInfo.username来获取附加数据。谢谢@bojeil,我已经在使用选项1,我可能会坚持使用它,因为选项2会导致不同客户端(Web、iOS和Android)上的代码重复。如果我能从用户创建触发器获得访问令牌,那就太好了。如果能从
onCreate
事件访问additionalUserInfo
那就太棒了。毕竟,如果我们是以额外权限通过Facebook登录的,我们肯定希望将收集到的数据存储在某个地方。让它通过客户端而不是后端访问有什么意义?你可以间接地做到这一点-谢谢@bojeil,我已经在使用选项1,我可能会坚持使用它,因为选项2会导致不同客户端(Web、iOS和Android)上的代码重复。如果我能从用户创建触发器获得访问令牌,那就太好了。如果能从onCreate
事件访问additionalUserInfo
那就太棒了。毕竟,如果我们是以额外权限通过Facebook登录的,我们肯定希望将收集到的数据存储在某个地方。通过客户端而不是后端访问它有什么意义?你可以间接地做到这一点-