fun offlineListen()

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]
    }