Как зарегистрировать пользователя в Firebase? - PullRequest
0 голосов
/ 04 июля 2019

Я собираюсь вставить свой адрес электронной почты и пароль в Аутентификацию Firebase.Тем не менее, код, который я нашел в Интернете, не работает для меня?Ниже приведен код, и когда я нажимаю кнопку «Далее», она также возвращается на предыдущую страницу, она не переходит на следующую страницу?

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 Ответ

2 голосов
/ 04 июля 2019

Я очень плохо знаком с 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();
                }
            }
        });
    }
}

Если регистрация прошла успешно, она вернется на страницу аутентификации для входа в систему. Это делается методом openAuthetication ().

public void openAuthetication(){
    Intent intent = new Intent(this, Authetication.class);
    startActivity(intent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...