Я следил за документацией Firebase, чтобы получить информацию о профиле пользователя для конкретного пользователя в разделе управления документацией.Не удалось получить адрес электронной почты пользователя поставщика google от Firebase
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
for (UserInfo profile : user.getProviderData()) {
// Id of the provider (ex: google.com)
String providerId = profile.getProviderId();
// UID specific to the provider
String uid = profile.getUid();
// Name, email address, and profile photo Url
String name = profile.getDisplayName();
String email = profile.getEmail();
Uri photoUrl = profile.getPhotoUrl();
};
Я смог получить идентификатор провайдера, uid, DisplayName, но я не смог получить электронную почту.
Ниже GoogleSignInOptions
код и GoogleApiClient
с доступом к Google Вход с кодом API
// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.gmaptest_web_client_id))
.requestEmail()
.requestScopes(new Scope(Scopes.EMAIL))
.build();
// Build a GoogleApiClient with access to the Google Sign-In API and the
// options specified by gso.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addScope(new Scope(Scopes.EMAIL))
.build();
Спасибо, что это сработало как шарм ... –
В соответствии с документацией Firebase, чтобы получить информацию о профиле пользователя для конкретного пользователя, я использовал метод getProviderData, как работает user.getEmail(). –