我想使用新的架构组件创建一个应用程序,我已经设置了视图和ViewModel。目前,我的应用程序在ViewModel中执行所有Firestore查询,并且在某种程度上可以工作。Google建议您提供一个存储一些数据并决定是否获取新数据的Repository。这对我的应用程序非常有意义,因为我有几个嵌套在MainActivity中的片段和许多其他活动。
我决定实现存储库并为我的存储库创建了一个Kotlin对象(Singleton)。结果,我收到警告,不应在其中存储FirebaseFirestore实例,因为它包含一个Context字段(我需要一个实例来分配snapshotListeners)。
我完全理解这个警告,但是我想知道如何在我的应用程序中使用Firebase实现存储库模式而不会造成内存泄漏的危险?由于Firebase和新的架构组件/指南都来自Google,我假设它们被设计为可以一起工作,但是在进行了一些研究之后,我无法弄清楚它们的工作方式。
有人知道使用Firebase快照监听器有效实现存储库的方法吗?
我决定实现存储库并为我的存储库创建了一个Kotlin对象(Singleton)。结果,我收到警告,不应在其中存储FirebaseFirestore实例,因为它包含一个Context字段(我需要一个实例来分配snapshotListeners)。
Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)
我完全理解这个警告,但是我想知道如何在我的应用程序中使用Firebase实现存储库模式而不会造成内存泄漏的危险?由于Firebase和新的架构组件/指南都来自Google,我假设它们被设计为可以一起工作,但是在进行了一些研究之后,我无法弄清楚它们的工作方式。
有人知道使用Firebase快照监听器有效实现存储库的方法吗?