私はBaaSとしてFirebaseを使用するアプリを開発しています。Firebase経由でユーザーのGmailメールアドレスを取得できません
私はGoogle Sign-inを統合しており、ユーザーの名前、メールアドレス、プロフィールを取得したいと考えています。
名前とプロフィールの画像を正常に取得しましたが、メールアドレスを取得できません。ここで
では、Google APIのクライアントのセットアップです:
/* Setup the Google API object to allow Google+ logins */
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();
は、ここで私は、ユーザーのデータをフェッチするために行っているものです:
public void fetchDataFromGoogle() {
if (authData != null) {
if (authData.getProvider().equals("google")) {
googleName = (String) authData.getProviderData().get("displayName");
googleEmail = (String) authData.getProviderData().get("email");
googleImage = (String) authData.getProviderData().get("profileImageURL");
}
} else {
Toast.makeText(getBaseContext(), "error", Toast.LENGTH_LONG).show();
}
}
このコードが正常に名前とプロフィール写真をフェッチしているが、それはnull
を返します電子メールアドレス。
ここで何が問題になっているか教えてください。
boのキーとして使用される「電子メール」文字列を再確認できますか?火元に保存しているとき、それをフェッチしているときは...? –
@DroidGEEK彼はfirebaseからフェッチしていないので、Google –
からフェッチしています。人currentPerson = Plus.PeopleApi .getCurrentPerson(mGoogleApiClient); 文字列personName = currentPerson。getDisplayName(); 文字personPhotoUrl = currentPerson.getImage()。getUrl(); 文字列personGooglePlusProfile = currentPerson.getUrl(); 文字列email = Plus.AccountApi.getAccountName(mGoogleApiClient); どのように私はそれをフェッチしています... –