Я новичок в Firebase и android studio, и я пытаюсь получить несколько узлов для сохранения в Firebase, у меня есть узел для сохранения для «пользователей», но мне нужен еще один для «бюджетов» категория для сохранения. Первоначально я думал, что есть проблема с моим OnClickListener, но при проверке он работает нормально. Это код для отправки пользовательских данных при моей регистрации:
private void sendUserData(){
String UserID = firebaseAuth.getUid();
RegDB regDB = new RegDB(emailDb, nameDb, passwordDb);
mDatabase.child("Users").child(UserID).setValue(regDB);
}
А это код для моей пользовательской страницы для отправки пользовательских данных:
private void sendUserData() {
String UserID = firebaseAuth.getUid();
CategoriesDB catDb = new CategoriesDB(travel_budget, entertainment_budget, fitness_budget, beauty_budget, clothes_budget, holiday_budget, food_budget, mobile_budget);
mDatabase.child("Users").child(UserID).child("Categories").setValue(catDb);
}
Я получаю эту ошибку как только я пытаюсь войти в бюджеты, хотя Firebase назначает уникальный идентификатор пользователя для каждого человека, который регистрируется, и этот идентификатор хранится в базе данных реального времени и аутентификации:
java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
Для справки, это мой OnClickListener для моя страница регистрации:
button_Upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (validate()) {
String emailDb = email.getText().toString().trim();
String passwordDb = password.getText().toString().trim();
firebaseAuth.createUserWithEmailAndPassword(emailDb, passwordDb).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
sendUserData();
firebaseAuth.signOut();
Toast.makeText(Register.this, "Successfully Registered!", Toast.LENGTH_SHORT).show();
finish();
startActivity(new Intent(Register.this, Menu.class));
} else {
Toast.makeText(Register.this, "Registration Failed.", Toast.LENGTH_SHORT).show();
}
}
});
Также OnClickListener для моей страницы бюджетов:
btn_subCat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(validate()){
sendUserData();
Toast.makeText(Categories.this, "Completed!", Toast.LENGTH_LONG).show();
finish();
startActivity(new Intent(Categories.this, Menu.class ));
}else{
Toast.makeText(Categories.this, "Submission failed", Toast.LENGTH_LONG).show();
}
}
});