私は匿名認証を実装しようとしており、次にsaycデータ用のGoogle認証を実装しようとしています。ここで Androidアプリケーションの匿名認証フロー?
は、匿名認証mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
userNameText.setText(user.getDisplayName());
Picasso.with(MainActivity.this).load(user.getPhotoUrl()).into(profileImageView);
Log.d(TAG, "onAuthStateChanged: " + user.getDisplayName());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged: user is null");
mAuth.signInAnonymously()
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInAnonymously:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.d(TAG, "signInAnonymously", task.getException());
Toast.makeText(MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
}
};
ためのコードであり、その後、ユーザーがGoogleアカウント
予想通り、これが実行さAuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.getCurrentUser().linkWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "linkWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
task.getException().printStackTrace();
Toast.makeText(MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
を使用してサインインを選ぶことができます。しかし、私はuser.getDisplayNameも、アプリケーションの再起動後に取得されていません。 firebaseコンソールには、匿名アカウントにリンクされているユーザーが表示されます。 また、同じユーザーがアプリを再インストールしたときに、新しい匿名ユーザーが作成されますが、今度はユーザーが以前と同じGoogleアカウントを選択しても、コンソールの既存のユーザーにはリンクされません。喜んで助けてください。
このリンクをお寄せいただきありがとうございます。再インストール後(ユーザーが同じ認証プロバイダを使用してサインインした後に)、以前にサインインしたアカウントにどのように接続しますか? – KiDa
私は混乱しています。これはあなたが上で尋ねた質問のようには聞こえません。これはほぼ完全に匿名認証に関するものです。あなたが知りたいことが反映されるように質問を書き直せますか?たぶん、非常に具体的な一連のステップを与えて、意味をなさない行動を引き起こしますか? –