android Firebase -在Graph 8.0更新后从具有Facebook提供商的auth获取个人资料照片URL

cidc1ykv  于 2023-06-28  发布在  Android
关注(0)|答案(4)|浏览(149)

我目前正在使用Facebook登录为我的Android应用程序进行firebase认证,并使用

firebaseAuth.getCurrentUser().getPhotoUrl()

这给了我从用户的facebook个人资料的照片网址。
最近我收到了来自Facebook的邮件,上面写着:“Facebook现在将要求客户端或应用程序访问令牌,以便在查询用户ID时访问用户的个人资料图片。从2020年10月24日开始,在没有访问令牌的情况下对用户ID进行的个人资料图片查询将返回通用轮廓,而不是个人资料图片。”
我的问题是-
请求firebaseAuth.getCurrentUser().getPhotoUrl()是否使用访问令牌从facebook访问url,在10月24日Graph API 8.0发布后,它的功能是否相同?或者我必须提出一个不同的查询请求来获取Facebook提供商的用户照片URL?

rt4zxlrg

rt4zxlrg1#

不幸的是,你必须自己将访问令牌添加到照片URL中,因为Firebase不支持它(因为他们没有访问它的权限-你可以阅读更多关于它的信息here)。
你将不得不沿着以下路线做一些事情:

firebaseAuth.getCurrentUser().getPhotoUrl() + "?access_token=<facebook_access_token>"
c90pui9n

c90pui9n2#

为了能够获得Facebook的访问令牌,在使用Firebase登录后,您可以使用:
AccessToken.getCurrentAccessToken()
补充Marek Fort的答案,使用Kotlin,你可以得到这样的图片:

"${firebaseAuth.getCurrentUser().getPhotoUrl()}?access_token=${AccessToken.getCurrentAccessToken()}"
u5rb5r59

u5rb5r593#

在Kotlin中,它看起来像:

"${firebaseAuth.currentUser?.photoUrl}?access_token=${AccessToken.getCurrentAccessToken()?.token}"
9wbgstp7

9wbgstp74#

2023年解决方案使用firebase“Web Modular API”时

配置文件url可以通过以下方法获得

getAdditionalUserInfo(result);

以下是完整的实现:

import { initializeApp } from 'firebase/app';
import {
  getAuth,
  FacebookAuthProvider,
  signInWithPopup,
  getAdditionalUserInfo,
} from 'firebase/auth';

const firebaseConfig = {
  apiKey: 'xxx',
  authDomain: 'xxx',
  projectId: 'xxx',
  storageBucket: 'xxx',
  messagingSenderId: 'xxx',
  appId: 'xxx',
  measurementId: 'xxx',
};

initializeApp(firebaseConfig);
const auth = getAuth();
const provider = new FacebookAuthProvider();

let result = await signInWithPopup(auth, provider);

let additional = getAdditionalUserInfo(result);
console.log('picture_url: ', additional.profile.data.picture.url);

// if token is needet
const credential = FacebookAuthProvider.credentialFromResult(result);
console.log('credential: ', credential);

参考:https://firebase.google.com/docs/auth/web/facebook-login?hl=de#web-modular-api_4

相关问题