【问题标题】:Firebase email/password authentication never completedFirebase 电子邮件/密码身份验证从未完成
【发布时间】:2018-12-24 16:09:40
【问题描述】:

我在我的 Android 应用中实现了 Firebase 提供的电子邮件/密码登录方法。它工作正常。但是今天由于某些我不知道的原因它没有工作。我没有更改任何与我的登录活动相关的代码,也没有更改我的 Firebase 控制台中的设置。

private void signIn(String email, String password) {
    Log.d(TAG, "signIn:" + email);
    if (!validateForm()) {
        return;
    }

    showProgressDialog();

    // [START sign_in_with_email]
    firebaseAuth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, task -> {
                if (task.isSuccessful()) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithEmail:success");
                    FirebaseUser user = firebaseAuth.getCurrentUser();
                    updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithEmail:failure", task.getException());
                    Toast.makeText(LoginActivity.this, "Authentication failed.",
                            Toast.LENGTH_SHORT).show();
                }

                hideProgressDialog();
            });
    // [END sign_in_with_email]
}

在 Logcat 中,它显示程序确实到达了登录方法,但不知何故,身份验证过程从未完成(日志从未显示 signInWithEmail:success 或 signInWithEmail:failure)。

我确实尝试了其他解决方案,例如将 addOnCompleteListener 更改为 addOnSuccessListener 但没有任何改变。 Firebase 服务目前无法正常工作吗?还是我的代码有问题?我完全迷路了。感谢您分享任何想法。

【问题讨论】:

  • “Firebase 服务当前无法运行吗?”要找到我们的,请查看status.firebase.google.com。但目前没有已知的中断。
  • @FrankvanPuffelen 谢谢。那时服务工作正常。我想我现在应该尝试重新安装我的 Android SDK

标签: android firebase firebase-authentication


【解决方案1】:

我通过创建带有 x86_64 SDK 的新模拟器,设法让它再次工作。我认为这与this questionthis question 有关

【讨论】:

    【解决方案2】:

    你注销了吗? 尝试先注销,然后它会登录。

    尝试在您的 onCreate 方法中执行 firebaseAuth.signOut()。 这可能会有所帮助。

    【讨论】:

    • 感谢您的建议,但我认为不是这样。我之前什至没有成功登录,因为该过程从未完成。原来它与谷歌服务有关。
    【解决方案3】:

    但此日志指的是方法 (SignIn) 而不是 firebaseAuth 方法,请从工具 -> Firebase -> 身份验证 -> 连接到 Firebase(如果未连接)检查您与 Firebase 的连接

    【讨论】:

    • firebaseAuth 方法在 signIn 方法中,您可以在我提供的 sn-p 中看到。我认为显示启用了电子邮件/密码方法已经暗示我的应用程序确实连接到了 Firebase。我已经回答了这个问题,谢谢你的想法
    • 兄弟我的意思是,当方法被调用时,日志被调用,但如果 task.isSuccessful 它应该给 Log.d(TAG, "signInWithEmail:success");和你一样
    【解决方案4】:

    我有另一个任务 FirebaseAuth.getInstance().currentUser.getIdToken(true)。它从未完成,因为我从主线程调用它。当我从后台线程调用时 - 它完成了。

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 1970-01-01
      • 2016-10-13
      • 2018-11-11
      • 2013-07-11
      • 2021-11-21
      • 2019-08-05
      • 2019-03-15
      • 2016-11-13
      相关资源
      最近更新 更多