【发布时间】:2019-12-01 02:16:20
【问题描述】:
我正在尝试从 firebase 检索数据。所有数据都正确显示,但出现故障,我不知道为什么?数据应该从头到尾读取:
val publicFeedMap = HashMap<String, Feed>()
private fun refreshRecyclerViewMessages(){
adapter.clear()
publicFeedMap.values.forEach{
adapter.add(PublicFeedItem(it))
}
}
private fun fetchPublicFeed(){
val ref = FirebaseDatabase.getInstance().getReference("PublicFeed")
ref.addChildEventListener(object: ChildEventListener{
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
p0.children.forEach {
val feedItem = p0.getValue(Feed::class.java) ?: return
publicFeedMap[p0.key!!] = feedItem
refreshRecyclerViewMessages()
}
}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {
}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {
}
override fun onCancelled(p0: DatabaseError) {
}
override fun onChildRemoved(p0: DataSnapshot) {
}
})
}
【问题讨论】:
-
你没有提供你的数据,或者你的预期输出是什么,所以很难判断一个“正确”的顺序是什么。但是,您实际上并没有拨打任何会订购您的查询的电话(例如
orderByChild或orderByKey等...)请参阅the documentation about sorting
标签: firebase kotlin firebase-realtime-database android-recyclerview