我们可以从 FirebaseAuth 获取 FacebookAccessToken 吗?

Posted

技术标签:

【中文标题】我们可以从 FirebaseAuth 获取 FacebookAccessToken 吗?【英文标题】:Can we get FacebookAccessToken from FirebaseAuth? 【发布时间】:2021-04-05 16:13:23 【问题描述】:

使用 Flutter,我可以使用 Facebook 登录,后来我想获取 FacebookAccessToken,因为需要它才能正确获取用户 photoURL

有没有办法从FirebaseAuth 获取令牌?还是我必须将此值存储在我的代码中?

登录部分,我们有访问令牌:

FacebookLoginResult result = await new FacebookLogin().logIn(['email', 'public_profile']);
...
FacebookAccessToken accessToken = result.accessToken;

现在,假设在另一个 Widget 中,我们想要获取用户 photoURL

final auth = FirebaseAuth.instance;
String url = auth.currentUser.photoURL;

url 必须附加在第一步中检索到的?accessToken=<access_token>。创建了一个bug。但是现在,我们可以直接从FirebaseAuth获取吗?

【问题讨论】:

【参考方案1】:

用户从FacebookAuthCredential 对象以result.credential.accessToken 登录后,立即可以从身份验证结果中获得Facebook 访问令牌。当前用户无法使用它,因此如果您在登录后没有立即捕获,则以后不返回 Facebook SDK 就无法找到它。

另见:

Can I get a facebook access token from firebase.auth().currentUser? How to get provider access token in Firebase functions? Get Facebook/Google access token on Firebase Auth#onAuthStateChanged?

【讨论】:

以上是关于我们可以从 FirebaseAuth 获取 FacebookAccessToken 吗?的主要内容,如果未能解决你的问题,请参考以下文章

在xamarin android中无法从FirebaseAuth获取刷新令牌。

如何使用 FirebaseAuth 从 Google 提供商处获取性别和生日?

如何使用 FirebaseAuth 从 Google 提供商处获取性别和生日?

如何在 Flutter 中从 Firebase Auth 获取用户 ID?

有啥方法可以获取 Firebase Auth 用户 UID?

主屏幕显示 firebaseAuth Flutter 中的空未来构建器