我遇到了一个问题,使用Firebase作为实时数据库时,在将其与Activity或Fragment连接时效果很好。但是尝试将其与视图元素分离并创建一些抽象来替换它(例如在测试或未来中替换),变得相当困难,特别是尝试实现MVP模式。
有没有解决此问题的方案?
我遇到了一个问题,使用Firebase作为实时数据库时,在将其与Activity或Fragment连接时效果很好。但是尝试将其与视图元素分离并创建一些抽象来替换它(例如在测试或未来中替换),变得相当困难,特别是尝试实现MVP模式。
有没有解决此问题的方案?
Firebase 和 UI 之间不应该有内在的耦合(除非您使用 FirebaseUI
)。 典型的解决方案是将 Firebase 数据库访问封装在某种 Service/DAO 类中(例如使用 Dagger 注入到 UI 类中)... 并且在该类中编写方法返回 RxJava Observable(这也很好地实现了一组嵌套的 Firebase 查询...例如,如果执行类似于“join”的操作)
只需在资源中保存一个字符串值并保存您的DB路径,然后在创建DatabaseReference
时使用该值指向您的真实或测试DB的基础。