との匿名のリンクをユーザーの名前を取得していない匿名サインインあります。私のグーグルサインインでは問題はなく、ユーザーの資格情報も名前、電子メール、ファイヤーベースIDなど素晴らしいものになっています。 問題は、firebaseを使用して私の匿名アカウントをGoogleのIDにリンクするときにもうまくいきますが、getDisplayName()が呼び出されたときに、は1つが正常な<strong>Googleはサインイン</strong>およびその他のですが、私は署名イン用の2つの方法の方法を持っている場合、Googleアカウント
注:私はfirebase IDと電子メールを正しく取得していますが、名前はnullになります。
これは、ここに私のログ出力されます:私のコードは正常に動作しているが、まだ運、コードは次のようになりませんので
11-15 12:58:26.712 21983-21983/in.pinelane.myhovi E/userName: null
11-15 12:58:26.712 21983-21983/in.pinelane.myhovi E/userEmail: [email protected]
:callAnonymousUpdateApiで
private void linkGuestWithCredential(AuthCredential credentials) {
firebaseAuth.getCurrentUser().linkWithCredential(credentials)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
mProgress.dismiss();
Log.d(TAG, "linkWithCredential:success");
FirebaseUser permanentUser = task.getResult().getUser();
callAnonymousUpdateApi(permanentUser);
Intent signIntent = new Intent(LoginActivity.this, MainActivity.class);
signIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(signIntent);
Toast.makeText(LoginActivity.this, "Welcome to MyHovi!", Toast.LENGTH_LONG)
.show();
finish();
overridePendingTransition(R.anim.right_enter, R.anim.left_exit);
}else{
mProgress.dismiss();
Log.e(TAG, "linkWithCredential:failure", task.getException());
Toast.makeText(getApplicationContext(), "Sign-in failed", Toast.LENGTH_SHORT)
.show();
}
}
});
(permanentUSer)私は実際に資格情報を取得しています:
private void callAnonymousUpdateApi(FirebaseUser permanentUser) {
final String name = permanentUser.getDisplayName();
final String email = permanentUser.getEmail();
final String firebaseId = permanentUser.getUid();
RequestParams params = new RequestParams();
params.add("user_id", userId);
params.add("name", name);
params.add("email", email);
params.add("firebase_id", firebaseId);
params.add("user_complete", "true");
}
私がこれまでにしようとしていることは次のとおりです。
FirebseUser permanentUSer = task.getResult().getUser();
しようとしている私がやったcallAnonymousUpdateApi(FirebaseUser permanentUser)にある別の方法で同じことをしようとしました
FirebseUser permanentUSer = FirebaseAuth.getInstance().getCurrentUser();
に変更
final String name = FirebaseAuth.getInstance().getCurrentUser().getDisplayName();
まだ運として名を取得し、任意のヘルプは高く評価されるだろう。ありがとう
あまりにもこの1ではありません運。私が得ているのはすべてヌルです。私はpermanentUser.getProvidersData()で試した。get(0).getDisplayName()。助けていただきありがとうございますが、私は実行可能なものが必要です。 –
使用しているGoogleアカウントに表示名がないか、公開されていない可能性があります。他のGoogleのメールでテストを試してみてください。 – bojeil
私はGoogle Sign-inメソッドを使用しているので、ここで私の質問に記載されている名前、電子メール、firebaseidなどのデータを取得しています。しかし、それが名前のために働いていないアカウントのリンクになると、私は電子メールとfirebaseidだけを取得し、nullとして名前を付けます –