Firebase SignUp始终出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase SignUp始终出错相关的知识,希望对你有一定的参考价值。
我正在我的应用程序中实现Fire-Base身份验证,使用SignUp和SignIn,但是我遇到了问题,每次填写表单并单击SignUp按钮时,即使帐户成功创建,Fire-Base也会返回错误。我的SignUp方法代码:
public class Signup extends AppCompatActivity {
EditText input_email,input_pass;
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
//View
input_email = (EditText)findViewById(R.id.id_email);
input_pass = (EditText)findViewById(R.id.id_pass);
//Init Firebase
auth = FirebaseAuth.getInstance();
}
public void iLogin (View v){
startActivity(new Intent(Signup.this, Login.class));
finish();
}
public void iForgot(View v){
//startActivity(new Intent(Signup.this, ForgotPassword.class));
finish();
}
public void iSignUp(View v){
signUpUser(input_email.getText().toString(),input_pass.getText().toString());
}
private void signUpUser(String email, String password) {
auth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(!task.isSuccessful())
{
Toast.makeText(Signup.this, "Successfully created your account", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(Signup.this, "ERROR has occurred", Toast.LENGTH_LONG).show();
}
}
});
}
}
那么会发生什么:
1-用户第一次打开应用程序,应用程序主要在MainActivity.class上打开,然后将用户重定向到SignUp.class(我上面添加的那个)。
2-然后,用户填写两个字段:(电子邮件)和(密码),然后单击“注册”按钮
3- SignUp.class(我上面添加的那个)然后创建一个新帐户并显示Toast:ERROR已经发生,即使该帐户已成功创建。为了让班级显示正确的Toast(成功创建您的帐户),我需要再次按下按钮。
所以要明确:第一次点击,帐户已创建,我可以在Fire-Base控制台中看到它,但应用程序仍然提供错误的Toast,因为它显示正确的我需要再次点击它,任何关于代码有什么问题的想法?提前致谢!
答案
只是改变:
if(!task.isSuccessful())
至:
if(task.isSuccessful())
它应该工作。当task.isSuccessful()
为真时,取得了成功,因此!
标志使其成为假。这就是它第二次运作的原因。
以上是关于Firebase SignUp始终出错的主要内容,如果未能解决你的问题,请参考以下文章
json 可视代码工作室Angular with Firebase片段
如何从 Firebase 获取数据到 Recyclerview 中的片段?