如何将用户注册为Firebase注册?

时间:2019-07-04 08:20:43

标签: java android firebase

我要将我的电子邮件和密码插入Firebase身份验证。但是,我在Internet上找到的代码对我不起作用?下面是代码,当我单击“下一步”按钮时,它也返回到上一页,不会继续下一页吗?

public void completeRegis() {

    username1 = username.getText().toString().trim();
    email1 = email.getText().toString().trim();
    psd1 = psd.getText().toString().trim();
    psd2 = reconpsd.getText().toString().trim(); 

    mAuth.createUserWithEmailAndPassword(email1, psd1)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    //start profile activity here

                    User user = new User(username1, email1,psd1);

                    FirebaseDatabase.getInstance().getReference("Users")
                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                        .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {

                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(RoleInfo1.this, "Registration successful.", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(RoleInfo1.this, HomePage.class ));
                            progressBar.setVisibility(View.GONE);
                        } else {
                            Toast.makeText(RoleInfo1.this, "Database not created", Toast.LENGTH_SHORT).show();
                            progressBar.setVisibility(View.GONE);
                        }
                    }
                });
            } else {
                Toast.makeText(RoleInfo1.this, "Registration not successful, please try again.", Toast.LENGTH_SHORT).show();
                progressBar.setVisibility(View.GONE);
            }
        });
    }

    private void initializeUI() {
        username = findViewById(R.id.usernameregister);
        email = findViewById(R.id.emailregister);
        psd = findViewById(R.id.psdregister);
        reconpsd = findViewById(R.id.reconpsdregister);
        progressBar = findViewById(R.id.progressBar);
    }
}

1 个答案:

答案 0 :(得分:2)

我对android还是很陌生,但是最近我成功创建了一个注册页面。

声明一个Firebase身份验证实例

private FirebaseAuth mAuth;
private EditText mName, mEmailField, mConfirmPass, mNewPass;

然后在onCreate()中,我将它们声明为

 mName = (EditText) findViewById(R.id.eName);
    mEmailField = (EditText) findViewById(R.id.fieldEmail);
    mConfirmPass = (EditText) findViewById(R.id.fieldConfirm);
    mNewPass = (EditText) findViewById(R.id.fieldNew);

    mAuth = FirebaseAuth.getInstance();

我在身份验证页面中添加了一个用于注册的按钮。单击它会启动注册过程。这是通过onCreate()方法完成的

b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startSignUp();
        }
    });

然后我声明如下的startSignUp()方法

public void startSignUp(){

    String name = mName.getText().toString();
    String email = mEmailField.getText().toString();
    String newPass = mNewPass.getText().toString();
    String conPass = mConfirmPass.getText().toString();

    if(TextUtils.isEmpty(name) || TextUtils.isEmpty(email) || TextUtils.isEmpty(newPass) || TextUtils.isEmpty(conPass)){
        Toast.makeText(SignUp.this, "Fields Empty" , Toast.LENGTH_LONG).show();
    }
        mAuth.createUserWithEmailAndPassword(email,newPass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(! task.isSuccessful()){
                    Toast.makeText(SignUp.this, "SignUp Failed", Toast.LENGTH_LONG).show();
                }else {
                    openAuthetication();
                }
            }
        });
    }
}

如果signUp成功,它将返回到身份验证页面以进行登录。这是通过openAuthetication()方法完成的。

public void openAuthetication(){
    Intent intent = new Intent(this, Authetication.class);
    startActivity(intent);
}