@Chesterfield25

Почему не создает пользователя?

Пытаюсь создать регистрацию и авторизацию пользователей в своем приложение, вроде как должно все работать корректно но оно по какой то причине не добавляет пользователя в базу данных хотя ошибок нету никаких и все зависимости подключены.

public class SignUpActivity extends AppCompatActivity {

    ActivitySignUpBinding binding;

    FirebaseAuth auth;
    FirebaseDatabase database;
    FirebaseUser user;
    ProgressDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivitySignUpBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        auth = FirebaseAuth.getInstance();
        database = FirebaseDatabase.getInstance();
        user = auth.getCurrentUser();

        dialog = new ProgressDialog(SignUpActivity.this);
        dialog.setTitle("Creating Account");
        dialog.setMessage("We are creating your account");

        binding.signup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.show();

                auth.createUserWithEmailAndPassword(binding.edtEmail.getText().toString(), binding.edtPassword.getText().toString())
                        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                dialog.dismiss();
                                if(task.isSuccessful()) {
                                    String email = binding.edtEmail.getText().toString();
                                    String refer = email.substring(0, email.lastIndexOf("@"));
                                    String referCode =refer.replace(".", "");

                                    HashMap<String,Object> map = new HashMap<>();

                                    map.put("login",binding.edtLogin.getText().toString());
                                    map.put("email",binding.edtEmail.getText().toString());
                                    map.put("mobileNumber",binding.edtPhone.getText().toString());
                                    map.put("password",binding.edtPassword.getText().toString());
                                    map.put("referCode",referCode);
                                    map.put("coins",20);
                                    map.put("spins",4);
                                    
                                    database.getReference().child("Users").child(user.getUid()).setValue(map);

                                    Intent intent = new Intent(SignUpActivity.this, MainActivity.class);
                                    startActivity(intent);
                                    finish();

                                    Toast.makeText(SignUpActivity.this, R.string.your_account_is_created, Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(SignUpActivity.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
            }
        });

        binding.login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SignUpActivity.this, SignInActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
}
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sapeg
Все ключевые места нужно прологировать и смотреть где обрыв произошёл. А так на вскидку здесь:
if(task.isSuccessful())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы