Простое извлечение данных из Cloud Firestore, но Firestore + ViewModel + LiveData - PullRequest
0 голосов
/ 16 декабря 2018

Я создаю приложение с использованием Cloud Firestore.Я уже реализовал RecyclerView с FirestoreRecyclerAdapter и установил для него данные из коллекции.Прежде чем продолжить, мне нужно кое-что понять:
1. Обратно к локальной базе данных (sqlite3, без LiveData) Firestore отправляет запрос на устройство, когда происходит какое-либо изменение в базе данных, я прав?
2. Предполагая, что я был прав в «вопросе» выше.Когда я получаю данные в адаптер, как это:

В моей деятельности onCreate:

val questions = FirebaseFirestore.getInstance().collection("DatabaseStructure")
        val query = questions.orderBy("timestamp", Query.Direction.DESCENDING)
        val options = FirestoreRecyclerOptions.Builder<DatabaseStructure>()
            .setQuery(query, DatabaseStructure::class.java)
            .build()
        firestoreAdapter = FirestoreAdapter(options)
        recyclerView.setHasFixedSize(true)
        recyclerView.layoutManager = LinearLayoutManager(context)
        recyclerView.adapter = firestoreAdapter

Мой класс данных:

data class DatabaseStructure(
val question: String = "",
val description: String? = "",
val image: String? = "",
val leftAnswers: Int = 0,
val rightAnswers: Int = 0,
val timestamp: com.google.firebase.Timestamp = com.google.firebase.Timestamp(Date()),
val userName: String? = "Anonymous")

Каждый раз, когда действие воссоздается, например, пользователи поворачивают устройство, возобновляют действие, данные извлекаются из облачного хранилища пожаров еще раз, даже если никаких изменений не произошло, я прав?Чтобы избежать этого, я должен использовать ViewModel тогда?

Предположим, что вопрос выше также был правдой, и я реализовал ViewModel для своего приложения, которое хранит данные из Cloud Firestore.Теперь, если появятся какие-либо изменения в базе данных, Firestore отправляет запрос на устройство для получения данных.Есть ли еще смысл наблюдать данные, используя LiveData?

Подводя итог, какую модель лучше всего реализовать Firestore без ненужного извлечения данных из базы данных, чтобы сделать ее наиболее эффективным способом и с наименьшими затратами энергии?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...