获取电子邮件的登录方法会返回EmailAuthProvider.PROVIDER_ID
(密码),但是当尝试使用signInWithEmailAndPassword
用同一封电子邮件登录时,即使返回的任务成功,它也会登录用户匿名,getCurrentUser().getProviders()
返回一个空数组。
instance.fetchSignInMethodsForEmail("registredEmail@mail.com")
.addOnSuccessListener(task -> {
List<String> signInMethods = task.getSignInMethods();
if (signInMethods.contains(EmailAuthProvider.PROVIDER_ID)) {
instance.signInWithEmailAndPassword("registredEmail@mail.com", "password")
.addOnSuccessListener(task1 -> {
FirebaseUser currentUser = instance.getCurrentUser();
Log.i("", "IsAnonymous: " + currentUser.isAnonymous());
Log.i("", "Email: " + currentUser.getEmail());
Log.i("", "Providers is Empty: " + currentUser.getProviders().isEmpty());
});
}
});
输出
IsAnonymous: true Email: helptesting@mail.com Providers is Empty: true
请注意,此代码不一定会重现此问题,该问题可能与环境/配置有关,但是,电子邮件/密码的组合是有效的,并且确实存在于Firebase身份验证仪表板中,此外,任务成功完成,但用户匿名登录,并且没有返回任何提供程序(预期密码提供程序)
答案 0 :(得分:0)
Firebase已解决此问题。这是一个lib问题。