我剛剛學習Firebase,並注意到任何操作都會簡單地替換數據,這與我在couchDB上看到的有所不同。Firebase - 實現可撤消的.update()的正確方法?
在我對其文檔的理解中,爲了使.update()
操作成爲可能的回滾/撤銷,我將使用.push()
方法。這個想法是保留2個版本的數據,以便我可以查詢以前的對象。要啓動,需要使用FILO方法,因此我不能存儲超過2個項目。
數據庫之前,先寫:
myData
+ someObject
- keyOne : valueOne
- keyTwo : valueTwo
數據庫後第一次寫入ref.child(someObject).update({keyOne:valueOneUpdated})
:
myData
+ someObject
- keyOne : valueOneUpdated
- keyTwo : valueTwo
上面沒有期望的結果,因爲我失去了該項目的早期版本。
數據庫後第一次寫入ref.child(keyOne).push({keyOne:valueOneUpdated})
:
myData
+ someObject
+ keyOne
+ 1k34jh23kj4h : valueOneUpdated
+ 237we8sjkdf8 : valueOne
- keyTwo : valueTwo
呸! 由於沒有pop()
方法去除這樣的操作的最後一項,我現在面臨不得不以某種方式確定哪個是第一個,哪個是最後一個項目。
當然,必須有一些優雅和直接的方式使回滾成爲可能,不是嗎?我錯過了什麼?
謝謝。
Firebase不提供數據的內置版本控制機制。在數據庫上構建版本控制系統有很多種方法。哪一個最適合你,主要取決於你的應用程序的需求。 –