Я хочу создать приложение с новыми компонентами архитектуры , и я уже настроил представления и ViewModel.На данный момент мое приложение выполняет все запросы Firestore во ViewModel, и это работает в некоторой степени. Google рекомендует предоставить репозиторий, который кэширует некоторые данные и решает, следует ли получать новые данные.Это имеет смысл для моего приложения, поскольку у меня есть несколько фрагментов, вложенных в мою MainActivity, и множество других активностей.
Я решил реализовать репозиторий и создал объект Kotlin (Singleton) для своего репозитория.В результате я получил предупреждение о том, что не должен хранить в нем экземпляр FirebaseFirestore, поскольку он содержит поле Context (мне нужен экземпляр для назначения snapshotListeners).
Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)
Я полностью понимаю это предупреждение но мне интересно как мне реализовать шаблон Repository с Firebase в моем приложении, не рискуя вызвать утечку памяти ?Поскольку Firebase и новые Architecure Components / Guidlines оба от Google, я предполагаю, что они предназначены для совместной работы, но после некоторых исследований я не смог понять это.
Кто-нибудь знает эффективный способ реализациихранилище с Firebase snapshotListeners?