Редактировать: проблема решена путем перемещения setValue (newProfile) под методом createUserWithEmailAndPassword.
Я пытаюсь зарегистрировать людей и поместить их информацию в базу данных с помощью Firebase в той же операции.Нет проблем с их регистрацией.Но даже если пользователь зарегистрирован, MainActivity запускается, а затем появляется всплывающее сообщение;setValue () в том же методе с этими командами не записывает информацию в базу данных.Вот запись в часть базы данных ( setValue () параметр newProfile объявлен как HashMap <> () ):
mAuth = FirebaseAuth.getInstance();
firebaseAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if(user != null){
databaseReference = FirebaseDatabase.getInstance().getReference().
child(selected_server).child(user_role).child(user.getUid());
databaseReference.setValue(newProfile);
Toast.makeText(Registration.this,"Registration completed!",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Registration.this,MainActivity.class);
startActivity(intent);
finish();
}
}
};
, а вот регистрационная часть:
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String email = et_email.getText().toString();
final String password = et_password.getText().toString();
if(needed_role.equals("") || user_role.equals("") || selected_server.equals("") ) {
Toast.makeText(Registration.this,"Please complete all informations" , Toast.LENGTH_SHORT).show();
}
else{
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(Registration.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
newProfile.put("E-mail" , et_email.getText().toString());
newProfile.put("Password" , et_password.getText().toString());
newProfile.put("Server" , selected_server);
newProfile.put("Summoner Name",et_summoner_name.getText().toString());
newProfile.put("Role", user_role);
newProfile.put("Needed" , needed_role);
if(!task.isSuccessful()){
Toast.makeText(Registration.this,"Sign up error" + task.getException(),Toast.LENGTH_SHORT).show();
}
}
});
}
}
});