Задать вопрос
@AndroidStudioUser

Почему не получается загрузить данные с Firebase Database?

Мне надо получить все данные с узла пользователя по его идентификатору. У каждого пользователя свой. Когда запускаю приложение данные не загружаются с 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) {
                        // Обработка ошибок при получении данных
                    }
                });

Скриншот фрагмента кода удалён модератором.

Кроме этого, каждый раз когда загружаю новые данные, они не появляются в узле(см. картинку сверху) а заменяют предыдущую строку.
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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