Я просто изучаю Firebase и заметил, что любая операция просто заменяет данные, что немного отличается от того, что я видел на couchDB.Firebase - правильный способ реализовать отмененный .update()?
В моем понимании их документации, чтобы сделать откат/отмену операции .update()
, я бы использовал метод .push()
. Идея состояла бы в том, чтобы сохранить 2 версии данных, чтобы я мог запросить предыдущий объект. Чтобы загрузиться, нужно будет использовать подход FILO, чтобы я не хранил более двух элементов.
БАЗА ДАННЫХ ПЕРЕД ПЕРВЫМ WRITE:
myData
+ someObject
- keyOne : valueOne
- keyTwo : valueTwo
БАЗА ПОСЛЕ ПЕРВОГО WRITE ref.child(someObject).update({keyOne:valueOneUpdated})
:
myData
+ someObject
- keyOne : valueOneUpdated
- keyTwo : valueTwo
выше, не является желаемым результатом, так как я потерял предыдущую версию элемента.
БАЗА ПОСЛЕ ПЕРВОГО WRITE ref.child(keyOne).push({keyOne:valueOneUpdated})
:
myData
+ someObject
+ keyOne
+ 1k34jh23kj4h : valueOneUpdated
+ 237we8sjkdf8 : valueOne
- keyTwo : valueTwo
Тьфу! Как нет метода pop()
, чтобы удалить последний элемент такой операции, теперь я столкнулся с необходимостью как-то выяснить, что является первым и последним.
Наверняка должен быть какой-то изящный и простой способ сделать откат возможным, нет? Что мне не хватает?
Спасибо.
Firebase не предоставляет встроенный механизм управления версиями данных. Существует множество способов создания системы управления версиями в базе данных. Какой из них лучше для вас, во многом зависит от потребностей вашего приложения. –