1
「複数のアカウントを1メールアドレスにする」を有効にしようとしていますが、どのように動作するかはわかりません。 fetchProvidersForEmail()は予期しない結果を返すようです。Firebase認証Android fetchProvidersForEmail()のバグ?
私は以下のコードを持っています。デフォルトでは
firebaseAuth.fetchProvidersForEmail("email").addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>() {
@Override
public void onComplete(@NonNull Task<ProviderQueryResult> task) {
if (task.isSuccessful()) {
List<String> providers = task.getResult().getProviders();
if (providers != null) {
Timber.d(providers.toString());
} else {
Timber.d("provider null");
}
} else {
Timber.d("task fail");
}
}
});
シナリオ1
- 、Googleとユーザーにサインインします。
fetchProvidersForEmail()
は[google.com]
を返します。 - [複数のアカウントをメールアドレスごとに有効にする]を有効にします。
fetchProvidersForEmail()
は[]
を返します。 - 「複数のアカウントをメールアドレスごとに無効にする」を無効にします。
fetchProvidersForEmail()
は[google.com]
を再度返します。
シナリオ2
- "電子メールアドレスごとに複数のアカウントを" 有効にします。まず電子メール/パスワードでユーザーにサインインしてください。
fetchProvidersForEmail()
は、[password]
を返します。- Googleでサインインしてください。
fetchProvidersForEmail()
はまだ[password]
のみを返します。 - 「複数のアカウントをメールアドレスごとに無効にする」を無効にします。
fetchProvidersForEmail()
は今すぐ[google.com]
を返します。
"のメールアドレスごとに複数のアカウントは" 有効になっていないと結論
- 、
[google.com]
が正しく返されます。また、「電子メールアドレスごとに複数のアカウント」が有効になっているときに作成された電子メール/パスワードの優先順位も与えられます。 - 「電子メールアドレスごとに複数のアカウント」を有効にすると、
[password]
が正しく返されます。[google.com]
は返されません。
これは実際に正しい動作ですか?