Android: Как получить более крупный профиль pic из fb с помощью firebaseAuth

Я использую firebaseAuth для входа пользователя через FB. Вот код

private FirebaseAuth mAuth; private FirebaseAuth.AuthStateListener mAuthListener; private CallbackManager mCallbackManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance(); mAuthListener = firebaseAuth -> { FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null) { // User is signed in Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); } else { // User is signed out Log.d(TAG, "onAuthStateChanged:signed_out"); } if (user != null) { Log.d(TAG, "User details : " + user.getDisplayName() + user.getEmail() + "\n" + user.getPhotoUrl() + "\n" + user.getUid() + "\n" + user.getToken(true) + "\n" + user.getProviderId()); } }; } 

Проблема в том, что фотография, которую я получаю от использования user.getPhotoUrl (), очень мала. Мне нужно большее изображение и не могу найти способ сделать это. Любая помощь будет высоко оценен. Я уже пробовал это Получить более крупный образ facebook через учетную запись firebase, но он не работает, хотя они для быстрой, я не думаю, что api должен отличаться.

Невозможно получить изображение профиля из Firebase, которое больше, чем у getPhotoUrl() . Тем не менее, на графике Facebook довольно просто получить изображение профиля пользователя в любом размере, если вы имеете идентификатор пользователя Facebook.

 String facebookUserId = ""; FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); ImageView profilePicture = (ImageView) findViewById(R.id.image_profile_picture); // find the Facebook profile and get the user's id for(UserInfo profile : user.getProviderData()) { // check if the provider id matches "facebook.com" if(FacebookAuthProvider.PROVIDER_ID.equals(profile.getProviderId())) { facebookUserId = profile.getUid(); } } // construct the URL to the profile picture, with a custom height // alternatively, use '?type=small|medium|large' instead of ?height= String photoUrl = "https://graph.facebook.com/" + facebookUserId + "/picture?height=500"; // (optional) use Picasso to download and show to image Picasso.with(this).load(photoUrl).into(profilePicture); 

Если кто-то ищет это, но для учетной записи Google использует FirebaseAuth. Я нашел обходное решение для этого. Если вы детализировали URL-адрес изображения:

https://lh4.googleusercontent.com/../…/…/…/s96-c/photo.jpg

Параметр / s96-c / определяет размер изображения (в этом случае 96×96), поэтому вам просто нужно заменить это значение на нужный размер.

 String url= FirebaseAuth.getInstance().getCurrentUser().getPhotoUrl(); url = url.replace("/s96-c/","/s300-c/"); 

Вы можете проанализировать свой URL-адрес фотографии, чтобы узнать, есть ли другой способ изменить его размер.

Как я уже сказал в начале, это работает только для аккаунтов Google. Проверьте ответ @Mathias Brandt, чтобы получить пользовательский размер профиля профиля facebook.