Firebase Firestore предоставляет метод getInstance()
, который открывает сокет (только один, в любой момент времени выполнения приложения) и запускает клиент Firestore.
Я хотел бы запросить и сохранить данные,использовать или нет слушателей (чтобы получать обновления в реальном времени и т. д.).Если я вызываю getInstance
, как только мне нужно запросить или сохранить, или если я сохраняю этот экземпляр в статическом классе при запуске моего приложения, а затем использую этот атрибут статического класса, как только мне нужно запросить или сохранить: эти 2 случаятехнически одинаковы.Потому что Google использует шаблон синглтона (getInstance()
).
Но я что-то упустил?Действительно ли безопасно хранить этот экземпляр как атрибут статического класса и использовать его, когда мне это нужно?И действительно ли безопасно звонить getInstance
всякий раз, когда мне это нужно? Чтобы быть более точным: между 2 вызовами getInstance()
(или между 2 обращениями к атрибуту статического класса), т.е.: между 2 точками времени выполнения, существует ли риск потери сетевого подключения, сокетное соединение, соединение с прослушивателями в реальном времени (снимки) и т. д.?
Если да: как решить эти проблемы?