亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase createUser使用電子郵件和密碼任務.isSuccessful()

Firebase createUser使用電子郵件和密碼任務.isSuccessful()

慕無忌1623718 2022-09-14 16:10:22
我正在創建一個安卓應用程序,并正在實現登錄/注冊功能。我正處于注冊活動在我的Firebase應用程序中成功創建用戶條目的階段,但是,我似乎無法跟蹤任務是否成功。private void startRegister() {    String email = mEmailField.getText().toString();    String password = mPasswordField.getText().toString();    String confirmPassword = mConfirmPassword.getText().toString();    // Check that fields are not empty    if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirmPassword)) {        Toast.makeText(Register.this, "Email, password or confirm password field cannot be empty.", Toast.LENGTH_LONG).show();    } else if (!password.equals(confirmPassword)) {        Toast.makeText(Register.this, "Password and confirm password should match", Toast.LENGTH_LONG).show();    } else {        mAuth.createUserWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {            @Override            public void onSuccess(AuthResult authResult) {                Toast.makeText(Register.this, "Success", Toast.LENGTH_LONG).show();            }        }).addOnFailureListener(new OnFailureListener() {            @Override            public void onFailure(@NonNull Exception e) {                Toast.makeText(Register.this, "Failure", Toast.LENGTH_LONG).show();            }        });    }}如果 !task.是成功的() 或者塊曾經被到達,但用戶是在火庫中創建的。任何想法為什么我不能跟蹤成功/如果它失敗了?相比之下:這在我的登錄類中起作用。        mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {            @Override            public void onComplete(@NonNull Task<AuthResult> task) {                if (!task.isSuccessful()) {                    Toast.makeText(Login.this, "Credentials error, user may not exist.", Toast.LENGTH_LONG).show();                }            }        });
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

很難說目前的實施方式是怎么回事。嘗試直接添加成功


mAuth.createUserWithEmailAndPassword(email, pass).addOnSuccessListener(new OnSuccessListener<AuthResult>() {

        @Override

        public void onSuccess(AuthResult authResult) {

           //done

        }

    }).addOnFailureListener(new OnFailureListener() {

        @Override

        public void onFailure(@NonNull Exception e) {

            //display toast if registering failed

            ToastRect.failed(RegisterActivity.this, getString(R.string.app_activities_error_text) 

        }

   });


查看完整回答
反對 回復 2022-09-14
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

public class Register extends AppCompatActivity {


private EditText mEmailField;

private EditText mPasswordField;

private EditText mConfirmPassword;

private Button mRegisterButton;

private FirebaseAuth mAuth;

private FirebaseAuth.AuthStateListener mAuthListener;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    FirebaseApp.initializeApp(this);

    setContentView(R.layout.activity_register);


    mEmailField = findViewById(R.id.registerEmailField);

    mPasswordField = findViewById(R.id.registerPasswordField);

    mConfirmPassword = findViewById(R.id.registerConfirmPassword);

    mRegisterButton = findViewById(R.id.registerButton);

    mAuth = FirebaseAuth.getInstance();



    mAuthListener = new FirebaseAuth.AuthStateListener() {

        @Override

        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {


            if (firebaseAuth.getCurrentUser() != null) {

                 startActivity(new Intent(Register.this, UploadActivity.class));

            }

        }

    };


    // https://stackoverflow.com/questions/10936042/how-to-open-layout-on-button-click-android

    Button register = (Button) findViewById(R.id.navigate_to_login);

    register.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            Intent myIntent = new Intent(view.getContext(), Login.class);

            startActivityForResult(myIntent, 0);

        }

    });


    mRegisterButton.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            startRegister();

        }

    });

}


@Override

protected void onStart() {

    super.onStart();


    mAuth.addAuthStateListener(mAuthListener);

}


private void startRegister() {

    String email = mEmailField.getText().toString();

    String password = mPasswordField.getText().toString();

    String confirmPassword = mConfirmPassword.getText().toString();


    // Check that fields are not empty

    if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirmPassword)) {


        Toast.makeText(Register.this, "Email, password or confirm password field cannot be empty.", Toast.LENGTH_LONG).show();

    } else if (!password.equals(confirmPassword)) {


        Toast.makeText(Register.this, "Password and confirm password should match", Toast.LENGTH_LONG).show();

    } else {


        mAuth.createUserWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener<AuthResult>() {

            @Override

            public void onSuccess(AuthResult authResult) {


                Toast.makeText(Register.this, "Success", Toast.LENGTH_LONG).show();

            }

        }).addOnFailureListener(new OnFailureListener() {

            @Override

            public void onFailure(@NonNull Exception e) {


                Toast.makeText(Register.this, "Failure", Toast.LENGTH_LONG).show();

            }

        });

    }

}

}


為了確認火壘身份驗證狀態列表()正在啟動。這是來自我的登錄類的糟糕的復制和粘貼作業。這阻止了我處理成功的用戶創建。


然后修復程序如下所示:


public class Register extends AppCompatActivity {


private EditText mEmailField;

private EditText mPasswordField;

private EditText mConfirmPassword;

private Button mRegisterButton;

private FirebaseAuth mAuth;

private FirebaseAuth.AuthStateListener mAuthListener;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    FirebaseApp.initializeApp(this);

    setContentView(R.layout.activity_register);


    mEmailField = findViewById(R.id.registerEmailField);

    mPasswordField = findViewById(R.id.registerPasswordField);

    mConfirmPassword = findViewById(R.id.registerConfirmPassword);

    mRegisterButton = findViewById(R.id.registerButton);

    mAuth = FirebaseAuth.getInstance();



    // https://stackoverflow.com/questions/10936042/how-to-open-layout-on-button-click-android

    Button register = (Button) findViewById(R.id.navigate_to_login);

    register.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            Intent myIntent = new Intent(view.getContext(), Login.class);

            startActivityForResult(myIntent, 0);

        }

    });


    mRegisterButton.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            startRegister();

        }

    });

}


@Override

protected void onStart() {

    super.onStart();

}


private void startRegister() {

    String email = mEmailField.getText().toString();

    String password = mPasswordField.getText().toString();

    String confirmPassword = mConfirmPassword.getText().toString();


    // Check that fields are not empty

    if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirmPassword)) {


        Toast.makeText(Register.this, "Email, password or confirm password field cannot be empty.", Toast.LENGTH_LONG).show();

    } else if (!password.equals(confirmPassword)) {


        Toast.makeText(Register.this, "Password and confirm password should match", Toast.LENGTH_LONG).show();

    } else {


        mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {

            @Override

            public void onComplete(@NonNull Task<AuthResult> task) {

                if (task.isSuccessful()) {


                    Toast.makeText(Register.this, "Password and confirm password should match", Toast.LENGTH_LONG).show();

                }

            }

        });

    }

}

}


查看完整回答
反對 回復 2022-09-14
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號