如何从Kotlin的Firestore集合中获取单个文档的DocumentChange对象?

问题描述 投票:0回答:1

如何获取单个documentSnapshot的DocumentChange对象?我想在when语句中使用文档更改的类型。使用querySnapshot很容易,但是我不知道如何解决这个问题,以监听单个文档中的更改。

val uid = FirebaseAuth.getInstance().uid
val documentReference = FirebaseFirestore.getInstance().collection("users").document(uid!!)
        documentReference.addSnapshotListener{
            documentSnapshot, e ->
            when (documentSnapshot**what code needs to be here**.type) {
                DocumentChange.Type.ADDED -> {}
                DocumentChange.Type.MODIFIED -> {}
                DocumentChange.Type.REMOVED -> {}
            }
        }

kotlin google-cloud-firestore listener
1个回答
0
投票

听单个文档时没有DocumentChange.Type。相反,您会得到一个DocumentSnapshot,其中包含该文档的状态。

您可以查看文档并跟踪这是否是您的侦听器的第一个回调,从而得出所发生的情况:

if (snapshot.exists()) {
  if (isFirst) Log.i(TAG, "ADDED")
  else Log.i(TAG, "MODIFIED")
}
else {
  if (isFirst) Log.i(TAG, "NOOP")
  else Log.i(TAG, "REMOVED")
}
© www.soinside.com 2019 - 2024. All rights reserved.