Ich habe Firebase Auth in meiner Android App hinzugefügt und ich verwende Facebook und Google anmelden. Anmeldung funktioniert gut. Jetzt möchte ich Benutzerprofilinformationen aus dem Facebook- oder Google-Konto des Nutzers abrufen (je nachdem, welcher Benutzer sich anmeldet) und die Informationen in der Benutzerprofilaktivität anzeigen. Ich kann den Benutzernamen und die Benutzer-UID abrufen und anzeigen. Benutzer-E-Mail und Benutzerfoto werden jedoch nicht angezeigt, obwohl sie abgerufen wurden.Firebase Auth: Android: Benutzer E-Mail und Foto kann nicht angezeigt werden
Hier ist, wie ich Benutzerinfo bin Abrufen (LoginActivity.java):
authStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
//User is signed in
for (UserInfo userInfo : user.getProviderData()){
String user_name = userInfo.getDisplayName();
String user_email = userInfo.getEmail();
Uri user_img = userInfo.getPhotoUrl();
String user_id = userInfo.getUid();
SharedPreferences preferences = getSharedPreferences(UserInfoConstants.STRING_NAME,0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(UserInfoConstants.KEY_USER_NAME, user_name);
editor.putString(UserInfoConstants.KEY_USER_EMAIL, user_email);
editor.putString(UserInfoConstants.KEY_USER_ID, user_id);
editor.putString(UserInfoConstants.KEY_USER_IMG, user_img != null ? user_img.toString() : null);
editor.apply();
}
} else {
//User is signed out
return;
}
}
};
Hier ist, wie Benutzer-Info am anzeigt (ProfileActivity.java):
SharedPreferences preferences = getSharedPreferences(LoginActivity.UserInfoConstants.STRING_NAME,0);
String user_img_uri = preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_IMG,"");
if (user_img_uri.isEmpty()){
userImgView.setImageResource(R.drawable.com_facebook_profile_picture_blank_portrait);
} else {
userImgView.setImageBitmap(getImageBitmap(user_img_uri));
}
userName.setText(preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_NAME,""));
userEmail.setText(preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_EMAIL,""));
userId.setText("ID: " + preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_ID,""));
I hat viel darüber gesucht, kann aber keine Lösung für dasselbe finden.
Kann jemand helfen ????
hey. Danke für Ihre Antwort. Lass es mich versuchen. –
Sie sind willkommen. –
hey danke ein tonnen mann! Es funktioniert perfekt! Pls erzählen auch, wie ich E-Mail-ID des Benutzers erhalten kann. Ich erhalte die E-Mail-ID, aber sie wird nicht angezeigt. –