Я столкнулся со странной проблемой с автономной синхронизацией firebase c.
В моем приложении я (администратор) читаю пользовательские данные, используя однозначный прослушиватель, и вношу необходимые изменения в эти дочерние объекты пользователя / properties, а затем сохраните изменения в базе данных.
Проблема в том, что при чтении пользователя с помощью прослушивателя с одним значением firebase предоставляет автономные данные пользователя, а внесенные изменения относятся к старым пользовательским данным. Итак, после сохранения пользователя в базе данных старые данные отражаются для пользователя.
Что мне здесь делать?
В любом случае явно запрашивать данные только из сети?
Мое использование:
final DatabaseReference ref= FirebaseDatabase.getInstance().getReference(DBInstances.USER_DETAILS_INSTANCE).child(userid);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot!=null) {
User user = dataSnapshot.getValue(User.class);
user.getCustomNotifications().add(customNotification);
ref.setValue(user);
В User есть карта ha sh, и здесь я пытаюсь добавить ребенка к этой хэш-карте и сохранить пользователя в сети. Когда включен автономный режим, хэш-карта загружается со старыми удаленными значениями.