来自数据库的 RxJava 数据和屏幕列表

RxJava data from DB with onscreen list

刚开始学习RxJava,有点迷茫

我的场景如下:我存储一些数据的本地 NoSQL 键值数据库。问题是端点可以向这个数据库添加数据,用户也可以删除其中的一些数据。

我将此数据显示为屏幕列表 (RecyclerView)。

我想知道最好的方法是什么,以便始终在一个地方了解数据库中的最新数据,以便我可以相应地更新 UI。

实现它的一种方法是在客户端和数据存储之间放置数据服务。使该数据服务成为 Observable。允许任何有兴趣在数据更改时收到通知的人注册数据服务。

您正在寻找的是一种创建观察者的方法,意思是将 DB 更改事件转换为 Observable。

所以你会有两种流:
一个作用于数据库并更改数据 (update/delete) 触发的各种事件(push/cloud/user 点击),这些更改将触发数据库更改事件,反过来,将在第二个流上发出事件表示数据库更改事件。

然后在你的UI中,你可以以Rx的方式对变化做出反应(响应DB变化事件流)。

为了创建数据库更改 Observable,您需要了解从异步事件创建 Observable 的热点(可以使用 Subjects 完成,或者如果您正在与某些数据库集成并且您有数据库更改事件,您可以'wrap' 它与使用 fromEmitter() 的 Observable 一起使用,您可以从这个博客了解更多信息:
https://medium.com/yammer-engineering/converting-callback-async-calls-to-rxjava-ebc68bde5831#.z1cj7ayhr