Firebase limitToLast查询

时间:2016-09-30 16:54:54

标签: android firebase firebase-realtime-database listener

我的问题可能是一个愚蠢的问题,我已阅读文档,但没有解决我的问题。当我使用limitToLast获取最后15条消息时(比如5-20),如果我删除第20条消息,则childListener会返回这样的消息(5-6-7-8-9-10-11-12- 13-14-15-16-17-18-19-4)...如您所见,最后一项是4号。 代码是这样的:
messagesListener = FBMessagesRef.limitToLast(15).addChildEventListener(new ChildEventListener(),我该如何解决它并且没有得到第4项

2 个答案:

答案 0 :(得分:0)

Firebase官方文档说,如果限制值小于数据库中的项目数,那么它将读取数据库中的所有项目。我猜很清楚。

  

limitToLast(limit)返回firebase.database.Query

     

生成一个新的Query对象,该对象仅限于最后一个特定的   孩子。

     

limitToLast()方法用于设置最大子项数   为同一回调同步。如果我们设置限制为100,我们会   最初只能收到100个child_added事件。 如果我们少了   存储在我们数据库中的100条消息,一个child_added事件将   为每条消息点火。但是,如果我们有超过100条消息,我们会   仅收到最近100条有序消息的child_added事件。如   项目更改,我们将收到每个项目的child_removed事件   退出活动列表,以使总数保持在100。

答案 1 :(得分:0)

由于您在将值设置为15时获得了最后15位数字,因此将mTest = matrix(c(T,T,T,NA,F,T,NA,NA,F),nrow=3,ncol=3) # "1≠all 2≠3" row.names(mTest) <- c(2,3,4) ; colnames(mTest) <- c(1,2,3) mTest[] = c(T,F,T,NA,F,T,NA,NA,F) # "1≠2 1,2≠4" mTest[] = c(T,T,T,NA,T,F,NA,NA,T) # "1,3≠all" 值更改为limitToLast以获取最后一个Firebase值。 将您的代码更改为以下代码段。

-1