【发布时间】:2021-09-15 22:29:22
【问题描述】:
我正在尝试使用 Firebase 实现一个基本的 android 身份验证系统。以下是我的代码:
Toast.makeText(MainActivity.this, "BEFORE ON-COMPLETE", Toast.LENGTH_SHORT).show(); //this shows up
mAuth.signInWithEmailAndPassword(emailInputted, passInputted).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toast.makeText(MainActivity.this, "in OnComplete", Toast.LENGTH_SHORT).show(); //this does not show up
if(task.isSuccessful()){
Intent i = new Intent(MainActivity.this, Dashboard.class);
i.putExtra("EMAIL", emailInputted);
Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
startActivity(i);
} else {
Toast.makeText(MainActivity.this, "Please check email/password", Toast.LENGTH_SHORT).show();
}
}
});
Toast.makeText(MainActivity.this, "after OnComplete", Toast.LENGTH_SHORT).show(); //this shows up
我从官方Firebase docs 获取此代码,但由于某种原因它无法正常工作。 onComplete 方法由于某种原因没有被调用。我可以看到“完成前”和“完成后”的祝酒词,但看不到“完成后”的祝酒词。我已在 firebase 控制台的身份验证表中添加了用户,并且我确信我输入了正确的密码。
使用调试器后,我看到我的代码只是跳过了onComplete() 方法,甚至没有到达isSuccessful() 方法。我该如何解决这个问题?
提前致谢!
【问题讨论】:
-
嘿,您是否尝试添加
addOnCanceledListener并放置日志或断点以查看是否出现问题?例如空通行证或电子邮件 -
@tperraut 刚刚做了,
onCanceledListner没有被调用。我在status.firebase.google.com 上查看了 Firebase 状态,但当时似乎没有已知问题?此外,我正在事先检查空密码/电子邮件。我不认为这是问题 -
如果你改用
createUserWithEmailAndPassword会发生什么? -
@tperraut 刚刚用类似的代码尝试过。
Before onComplete和After onCompletetoasts 被调用,但不是in onComplete一个。此外,我的身份验证表中没有创建任何用户。 -
只是为了确保您在 AndroidManifest.xml 文件中已经添加 android.permission.INTERNET。哈哈。我指出这听起来很奇怪,但很多时候我们忘记添加这个权限,无数小时的调试对于这样一个微不足道的错误是徒劳的。
标签: java android firebase android-studio listener