我试了两种方法。
:
getUserReference()?.get()?.addOnSuccessListener {}
第二:
getUserReference()?.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {}
override fun onCancelled(error: DatabaseError) {}
})
但是据我所知,它返回所有的数据。不管是否有数据更新。我想上传的数据只有当有在服务器上的变化。如何做到这一点?或者我不明白。
Firebase中没有任何内置功能仅用于获取更新的数据。如果你想这样做,你必须:
- 为每个子节点添加时间戳,表明它上次更新的时间
- 使用查询只获取更新的数据:
ref.orderByChild("lastUpdated").startAt(System.currentTimeMillis())
这个问题之前已经讨论过很多次了,所以我建议您查看其中一些问题的答案,包括:
- Firebase onChildAdded for new data
- Firebase Realtime Database addChildEventListener在应用程序重新打开时获取所有项