Как я могу обновлять данные базы данных Firebase с помощью RecyclerView каждую секунду

Я создаю приложение для Android, сохраняю данные в базе данных Firebase и получаю их, но когда пользователь добавляет что-то новое, данные не отображаются в приложении до тех пор, пока пользователь не выйдет и снова не войдет в приложение.

я пробую это

  @Override
protected void onRestart() {
    super.onRestart();
   adapter.notifyDataSetChanged();

}

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

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (dataSnapshot.exists()) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {

                    for (DataSnapshot d : ds.getChildren()) {
                        data.add(d.getValue(game.class));

                    }
                    adapter = new allAdapter(data);
                    rv.setAdapter(adapter);
                
                    allGamesAdapter.notifyDataSetChanged();

                }
            }
           
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
           
            Toast.makeText(MainActivity.this, "error", Toast.LENGTH_SHORT).show();

        }
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
610
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вы ищете функцию реального времени базы данных Firebase Realtime. Чтобы получать обновления в режиме реального времени, вы должны изменить вызов на addListenerForSingleValueEvent() с addValueEventListener(). То, что вы делаете сейчас, вы получаете данные только один раз, отсюда и такое поведение. Для получения дополнительной информации, пожалуйста, проверьте официальную документацию:

извините, у меня были дела, спасибо, это помощь, но это вызывает другие проблемы.

Gos Cb 23.12.2020 08:59

Если вы столкнулись с другой проблемой, задайте новый вопрос, используя собственный MCVE, чтобы я и другие разработчики Firebase могли вам помочь.

Alex Mamo 23.12.2020 10:16

Другие вопросы по теме