使用电子邮件/密码进行Firebase身份验证的用户匿名签名

时间:2018-10-13 18:26:29

标签: android firebase firebase-authentication

获取电子邮件的登录方法会返回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身份验证仪表板中,此外,任务成功完成,但用户匿名登录,并且没有返回任何提供程序(预期密码提供程序)

1 个答案:

答案 0 :(得分:0)

Firebase已解决此问题。这是一个lib问题。