我尝试启用"每个电子邮件地址的多个帐户",但我不确定它是如何工作的。 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
fetchProvidersForEmail()
返回[google.com]
。fetchProvidersForEmail()
返回[]
。fetchProvidersForEmail()
再次返回[google.com]
。场景2
fetchProvidersForEmail()
返回[password]
。fetchProvidersForEmail()
仍然只返回[password]
。fetchProvidersForEmail()
现在仅返回[google.com]
。结论
[google.com]
。它还具有电子邮件/密码的优先级,该电子邮件/密码是在&#34;每个电子邮件地址的多个帐户&#34;已启用。[password]
。永远不会返回[google.com]
。这实际上是正确的行为吗?
答案 0 :(得分:0)
Google登录优先于其他身份验证提供商方法,因为Google帐户已被Firebase视为已验证。
但是,如果启用了多个帐户,则会返回与该电子邮件关联的第一个登录方法。