Исходя из комментариев и структуры вопроса, причина, по которой данные устаревают, связана с тем, как они хранятся в Firebase.
Один из вариантов заключается в том, что при отправке сообщения в узел записывается сообщение, а затем ссылка на информацию об отправителе. Все это всегда свежо и актуально
Допустим, у нас есть пользовательский узел с пользователями, которые хранятся с UID пользователя в качестве ключа для каждого узла
users
uid_0
user_name: "Peter"
user_age: "32"
gender: "Male"
business_name: "Peter's Plumbing Place"
url: "http:...."
type: "Customer"
uid_1
user_name: "Ralph"
user_age: "47"
gener: "Male"
business_name: "Ralph's Repair Room"
url: "http:...."
type: "Employee"
тогда у нас есть сообщения
messages
msg_0
msg_text: "Here's a message!"
from_uid: "uid_0"
to_uid: "uid_1"
timestamp: "20180110"
Затем пользователь uid_1 добавляет наблюдателя запросов к узлу сообщений для любых сообщений, для которых to_uid равен uid_1, поэтому они уведомляются о входящем сообщении. Получив его, они также узнают, что оно было отправлено uid_0, и могут указать свое имя, изображение профиля, возраст и т. Д.
Таким образом, все данные синхронизируются и текут, а устаревшие данные не существуют.
Это типичная реализация структуры приложения обмена сообщениями.