Как получить настоящее имя (имя и фамилию) профиля Facebook, в который выполнен вход с помощью Firebase?

Как я могу получить настоящие имя и фамилию профиля Facebook, который вошел в систему с использованием аутентификации Firebase?

mAuth = FirebaseAuth.getInstance();
fullNameTextView.setText(mAuth.getCurrentUser().getDisplayName());
userNameTextView.setText(mAuth.getCurrentUser().getDisplayName());        
Picasso.get().load(mAuth.getCurrentUser().getPhotoUrl()).placeholder(R.drawable.ic_action_profile).into(profilePictureImageView);

person Lucas Goldner    schedule 27.05.2020    source источник


Ответы (1)


Эта информация не существует в объекте FirebaseUser. Чтобы решить эту проблему, вы должны сначала получить список провайдеров и найти интересующего вас. Поэтому проверьте следующие строки кода:

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
List<? extends UserInfo> userInfoList = firebaseUser.getProviderData();
for (UserInfo userInfo : userInfoList) {
    String providerId = userInfo.getProviderId();
    if (providerId.equals(FacebookAuthProvider.PROVIDER_ID)) {
        String name = userInfo.getDisplayName();
        Log.d("TAG", name);
    }
}

Результатом в logcat будет имя пользователя, прошедшего аутентификацию с помощью Facebook.

person Alex Mamo    schedule 28.05.2020
comment
Алекс, я не знаю, знакомы ли вы с аутентификацией в Твиттере, но если да, пожалуйста, помогите мне с моим новым вопросом. - person Lucas Goldner; 31.05.2020
comment
Я посмотрю и если узнаю ответ, то напишу вам. - person Alex Mamo; 01.06.2020