Мне надо получить все данные с узла пользователя по его идентификатору. У каждого пользователя свой. Когда запускаю приложение данные не загружаются с Firebase. Регистрация, вход, отправка на сервер - все работает, кроме загрузки.
Код регистрации:
FirebaseAuth mAuth = FirebaseAuth.getInstance();
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(RegisterActivity.this, "Аккаунт создан", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent); } else {
// Обработка ошибок при регистрации
}
});
Код входа в аккаунт:
FirebaseAuth mAuth = FirebaseAuth.getInstance();
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(LoginActivity.this, "Вы вошли в аккаунт", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "Войти не удалось", Toast.LENGTH_SHORT).show();
}
});
Код отправки данных в Firebase:
FirebaseDatabase database = FirebaseDatabase.getInstance();
FirebaseAuth mAuth = FirebaseAuth.getInstance();
String userId = mAuth.getCurrentUser().getUid();
database.getReference("users/" + userId).setValue(string)
.addOnSuccessListener(aVoid -> {
Toast.makeText(this, "Данные отправлены на сервер", Toast.LENGTH_SHORT).show();
})
.addOnFailureListener(e -> {
});
Код загрузки всех данных с узла пользователя - не работает:
FirebaseDatabase database = FirebaseDatabase.getInstance();
FirebaseAuth mAuth3 = FirebaseAuth.getInstance();
String userId = mAuth3.getCurrentUser().getUid();
database.getReference("users/" + userId)
.orderByKey()
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
String value = snapshot.getValue(String.class);
textView6.setText(value + "\n");
}
} else {
textView6.setText("У вас нет записей"); // Если узел данных пользователя пуст, выводим сообщение
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
// Обработка ошибок при получении данных
}
});
Скриншот фрагмента кода удалён модератором.
Кроме этого, каждый раз когда загружаю новые данные, они не появляются в узле(см. картинку сверху) а заменяют предыдущую строку.