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/)。 –