in firestore/app/src/main/java/com/google/example/firestore/kotlin/DocSnippets.kt [1075:1097]
fun offlineListen(db: FirebaseFirestore) {
// [START offline_listen]
db.collection("cities").whereEqualTo("state", "CA")
.addSnapshotListener(MetadataChanges.INCLUDE) { querySnapshot, e ->
if (e != null) {
Log.w(TAG, "Listen error", e)
return@addSnapshotListener
}
for (change in querySnapshot!!.documentChanges) {
if (change.type == DocumentChange.Type.ADDED) {
Log.d(TAG, "New city: ${change.document.data}")
}
val source = if (querySnapshot.metadata.isFromCache)
"local cache"
else
"server"
Log.d(TAG, "Data fetched from $source")
}
}
// [END offline_listen]
}