Могу ли я передать строку из действия в другое, но все равно обновить ее при обновлении оригинала?

# #firebase #kotlin #android-intent #bundle

Вопрос:

Я получаю оценку от firebase в GameActivity, а затем передаю ее в ScoreActivity с помощью пакета. Я хочу обновить оценку в своем приложении в режиме реального времени при изменении базы данных, как я могу этого добиться?

Спасибо.

Комментарии:

1. Вместо того, чтобы передавать вещи через разные действия, я бы просто придерживался одного действия и нескольких фрагментов. С помощью этого вы можете создать activityviewmodel, а затем просмотреть нужную строку из базы данных

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

3. Чтобы лучше понять, оценка, которую вы получаете в игровом действии, постоянно меняется, и вы хотите получать обновления в режиме реального времени о результатах в игровом действии? Пожалуйста, ответьте @AlexMamo

4. @AlexMamo да, это то, чего я хочу

Ответ №1:

Согласно этому комментарию:

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

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

Согласно официальной документации:

Чтобы прочитать данные по пути и прослушать изменения, используйте метод addValueEventListener (), чтобы добавить значение ValueEventListener в ссылку базы данных.


Простая передача объекта через намерение или пакет не обеспечивает эту функцию в реальном времени.

Поскольку вы не выбрали тег для конкретной базы данных, я также покажу вам, как этого добиться в случае Cloud Firestore, где для прослушивания обновлений в режиме реального времени следует использовать addSnapshotListener() для DocumentReference или для объекта CollectionReference.

Поэтому не бойтесь использовать несколько прослушивателей, все запросы передаются по конвейеру через одно соединение.

Комментарии:

1. Я проверил ваше приложение FireApp и все еще не знаю, как реализовать автоматическое обновление данных в пользовательском интерфейсе при изменении базы данных. Вы можете мне с этим помочь?

2. Приложение FireApp не получает данные в режиме реального времени. Однако при использовании функции addValueEventListener() в случае базы данных реального времени или функции addSnapshotListener() в случае облачного магазина Firestore вы получите желаемое поведение.