Я разрабатываю приложение для Android, которое использует много данных от и в направлении моей базы данных Firestore.
Вот краткий обзор того, что я делаю.
Использование из: Я настраиваю прослушиватели на документы и коллекции и использую метод get
;
Использование в направлении : я храню документы, используя и не используя set
, я также обновляю документы.
Пока что каждый раз, когда я делаю любое из упомянутых действий, я создаю класс с именем SetupFirebaseFirestore
.Это AsyncTask
, который создает Firestore.Когда он закончен, он также выполняет обратный вызов (данный, когда я создаю экземпляр SetupFirebaseFirestore
).
Вы можете найти код ниже:
public class SetupFirebaseFirestore extends AsyncTask<Void, Void, Void> {
private SetupFirebaseFirestorePostExecuteCallback post_execute_callback;
private FirebaseFirestore db;
public SetupFirebaseFirestore(SetupFirebaseFirestorePostExecuteCallback callback) {
post_execute_callback = callback;
}
private void createFirebaseProducts() {
db = FirebaseFirestore.getInstance();
db.setFirestoreSettings(new FirebaseFirestoreSettings.Builder()
.setTimestampsInSnapshotsEnabled(true)
.build());
}
@Override
protected Void doInBackground(Void[] params) {
createFirebaseProducts();
return null;
}
@Override
protected void onPostExecute(Void result) {
post_execute_callback.onTaskCompleted(db);
}
}
Проблема и вопрос
Проблема в том, что мое приложение взаимодействует много с Firestore.Таким образом, существует множество экземпляров Firestore и, следовательно, много потребления ОЗУ.
Кстати, возможно, он перегружает Firestore, так как я звоню getInstance()
и build()
?
Как могЯ делаю что-то более чистое с точки зрения потребления оперативной памяти?Должен ли я использовать шаблон синглтона? Это позволило бы мне создать Firestore один раз, и то же самое для создания его настроек.