isSuccessful()和isComplete()方法之间的区别

Ank*_*dit 2 android firebase firebase-authentication

我在我的android应用程序中使用Firebase.在我的注册方法中,我使用'createUserWithEmailAndPassword()'方法.检查我的注册过程是否成功我是否正在使用'isSuccessful'方法.

 firebaseAuth.createUserWithEmailAndPassword(m,p).addOnCompleteListener(new 
 OnCompleteListener<AuthResult>() 
 {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
            if(task.isSuccessful())
             {
                //some message               
             }
            else
            {
                 //some other message
            }
  };
Run Code Online (Sandbox Code Playgroud)

但每次我尝试注册时,消息都显示它没有成功.然后我使用'isComplete()'而不是'isSuccessful'然后它工作正常.我还检查了Firebase仪表板以确保是否符号上升过程工作正常,它是.现在我想知道这两种方法之间是否存在任何重大差异,如果我使用'isComplete()'会有任何进一步的问题,因为我已经检查过使用'isSuccessful()'的其他教程.还有一件事,对于相同的代码'isComplete()'返回true并创建用户,但'isSuccessful()'不是.完整的代码:

 public class RegisterActivity extends AppCompatActivity {
private EditText mail,pass,cPass;
private FirebaseAuth firebaseAuth;
private ImageButton reg;
private TextView warn;
private String a,b,c;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    mail=(EditText) findViewById(R.id.email);
    pass=(EditText) findViewById(R.id.pass);
    cPass=(EditText) findViewById(R.id.Cpass);
    reg=(ImageButton) findViewById(R.id.reg);
    firebaseAuth=FirebaseAuth.getInstance();
    progressDialog=new ProgressDialog(this);
    warn=(TextView) findViewById(R.id.warnTv);
    warn.setText("");
    reg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            a=mail.getText().toString().trim();
            b=pass.getText().toString().trim();
            c=cPass.getText().toString().trim();
            if(a.isEmpty() || b.isEmpty() || c.isEmpty())
            {
                Toast.makeText(getApplicationContext(),"all the fields are mandatory",Toast.LENGTH_SHORT).show();
            }
            else
            {
                if(LoginActivity.validate(a))
                {
                    if(b.equals(c))
                    {
                        progressDialog.setMessage("Wait a sec");
                        progressDialog.show();
                        firebaseAuth.createUserWithEmailAndPassword(a,b).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if(task.isSuccessful())
                                {
                                    progressDialog.dismiss();
                                    Toast.makeText(getApplicationContext(),"Registration successful",Toast.LENGTH_SHORT).show();
                                    startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
                                    finish();
                                }
                                else
                                {
                                    progressDialog.dismiss();
                                    Toast.makeText(getApplicationContext(),"Something went wrong",Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
                    }
                    else {

                        warn.setText("Passwords in both the field must be same");
                    }
                }
                else
                {
                    warn.setText("Enter a valid emailId");
                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

请帮我解答.谢谢.

Dou*_*son 12

当任务表示的工作完成时,任务"完成",无论其成功与否.可能有也可能没有错误,您必须检查.

当任务表示的工作按预期完成时,任务"成功",没有错误.