0

我目前正在編寫一個Android應用程序,並正在使用Firebase實時數據庫。具有事件驅動的Firebase數據庫的數據訪問服務/圖層

我很苦惱與數據庫的事件驅動的概念。

在我的「正常」的SQL關係世界我通常實現數據訪問服務/層旁邊的MVVM模式有一個控制的數據流。例如,該層實現了CRUD方法來返回POCO/POJO。

但在這個事件驅動,在火力地堡數據庫CRUD的R沒有意義,因爲我沒有主動讀取數據庫中的什麼了而是NoSQL的環境中通過事件告知事情已經改變。

我可以簡單地用事件偵聽器替換CRUD主動閱讀部分,並繼續使用,我已經習慣了數據訪問服務/層方法,還是有這種方法顯著的缺陷?如果是這樣,那麼使用事件驅動數據庫處理數據流的方法是什麼?

回答

1

Firebase數據庫在大多數MVVM實現中用作持久的,事件驅動的視圖模型。

因此,您不需要構建自己的數據訪問層以將數據庫映射到視圖模型,而是將視圖模型存儲在Firebase數據庫中,而不再編寫自己的圖層。

+0

你知道我能看到這個的任何例子嗎?我不明白如何將視圖模型存儲在數據庫中。對我而言,視圖模型是爲視圖處理數據的東西,而不是保存數據的東西。 編輯:仍然打字,我意外地擊中輸入。 – AirLancer

+0

我錯過了編輯的時間窗口,所以這裏是其餘的評論: 我現在可以看到你的建議工作是如果我放棄嘗試不要在數據庫中存儲數據不止一次的概念。我知道這個想法被稀釋在Firebase DB中,並不是完全拋棄了。 然後我有一個數據庫方案強烈耦合到一個視圖和相當多的開銷,當我試圖保持在不同的地方對齊的數據。 我錯過了什麼? – AirLancer

+0

數據重複在NoSQL數據庫中非常常見。如果您剛剛接觸這個主題,我強烈建議閱讀[NoSQL數據建模](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)。 –