【问题标题】:Data Access Service/Layer with an event-driven Firebase database具有事件驱动的 Firebase 数据库的数据访问服务/层
【发布时间】:2016-11-05 23:46:36
【问题描述】:

我目前正在编写一个 android 应用,并为此使用 Firebase 实时数据库。

我正在为数据库的事件驱动概念而苦苦挣扎。

在我的“普通”SQL 关系世界中,我通常会在 MVVM 模式旁边实现一个数据访问服务/层,以控制数据流。例如,这一层实现了 CRUD 方法以返回 POCO/POJO。

但在这个事件驱动中,Firebase 数据库的 noSQL 环境中的 CRUD 中的 R 没有意义,因为我不再主动读取数据库中的任何内容,而是通过事件获得通知事情发生了变化。

我是否可以简单地将 CRUD 中的活动读取部分替换为 事件侦听器 并继续使用我习惯的或现有的 数据访问服务/层 方法这种方法有重大缺陷吗?如果是这样,使用事件驱动数据库处理数据流的方法是什么?

【问题讨论】:

    标签: android mvvm firebase-realtime-database data-access-layer event-driven


    【解决方案1】:

    Firebase 数据库在大多数 MVVM 实现中用作持久的、事件驱动的视图模型。

    因此,您无需构建自己的数据访问层以从数据库映射到视图模型,而是将视图模型存储在 Firebase 数据库中,不再编写自己的层。

    【讨论】:

    • 你知道我能看到这个的任何例子吗?我不明白如何将视图模型存储在数据库中。对我来说,视图模型是为视图处理数据的东西,而不是保存数据的东西。编辑:还在打字,我不小心按了回车。
    • 我错过了编辑的时间窗口,所以这是评论的其余部分:我目前可以看到你的建议是如果我放弃尝试不在数据库中存储数据的概念更多不止一次。我知道这个想法在火力数据库中被稀释了,并没有完全被抛弃。然后我有一个与视图强耦合的数据库方案,当我尝试将不同位置的数据保持对齐时,会产生相当多的开销。我错过了什么?
    • 数据重复在 NoSQL 数据库中非常普遍。如果您不熟悉该主题,我强烈建议您阅读NoSQL data modeling
    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2013-12-05
    • 2010-09-13
    • 1970-01-01
    • 2016-12-07
    • 2014-09-15
    • 2013-05-10
    • 2017-09-03
    相关资源
    最近更新 更多