如何只获得更新的数据Firebase



我试了两种方法。

:

getUserReference()?.get()?.addOnSuccessListener {}

第二:

getUserReference()?.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {}
override fun onCancelled(error: DatabaseError) {}
})

但是据我所知,它返回所有的数据。不管是否有数据更新。我想上传的数据只有当有在服务器上的变化。如何做到这一点?或者我不明白。

Firebase中没有任何内置功能仅用于获取更新的数据。如果你想这样做,你必须:

  1. 为每个子节点添加时间戳,表明它上次更新的时间
  2. 使用查询只获取更新的数据:ref.orderByChild("lastUpdated").startAt(System.currentTimeMillis())

这个问题之前已经讨论过很多次了,所以我建议您查看其中一些问题的答案,包括:

  • Firebase onChildAdded for new data
  • Firebase Realtime Database addChildEventListener在应用程序重新打开时获取所有项