gpt4 book ai didi

java - firebase startAt() endAt() 方法

转载 作者:行者123 更新时间:2023-12-02 03:06:21 25 4
gpt4 key购买 nike

我想使用 startAt()endAt() 方法,但我不完全理解它们是如何工作的。

假设我有当前的数据库

"users" : {
"someUser1" : {
"email" : "oneEmail",
"someOtherInfo" : "OneInfo",
"username" : "someUser1"
}
"someUser2" : {
"email" : "twoEmail",
"someOtherInfo" : "twoInfo",
"username" : "someUser2"
},
"someUser3" : {
"email" : "threeEmail",
"someOtherInfo" : "threeInfo",
"username" : "someUser3"
},
"someUser4" : {
"email" : "fourEmail",
"someOtherInfo" : "fourInfo",
"username" : "someUser4"
}
}

现在这些数据将被附加到 RecyclerView 上。因此,最初我只想获取前 2 个元素(someUser1someUser2),然后当用户滚动到 recyclerView 的底部时,它会获取其他 2 个元素。

recyclerView 已完全设置并正常工作,我现在只需要从数据库获取元素,但我不明白这两种方法是如何工作的,如果我这样做了:

users = myDB.getReference("users").orderByChild("email").startAt(0).endAt(2);

这足以获取前 2 个元素吗?

谢谢

最佳答案

您可以通过limitToLast()来完成,代码如下:

DatabaseReference node;

node.limitToLast(AppConstants.SIZE)
.orderByChild(YourOwnSortMethod)
.addValueEventListener(mValueEventListener);

private ValueEventListener mTypingValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.i(TAG, "onDataChange: " + snapshot.getValue());
// Your code
}

@Override
public void onCancelled(DatabaseError error) {
Log.w(TAG, "onCancelled: " + error.getMessage());
}
};

它的作用是,

数据集 = A、C、B、E、F

orderByChild(升序)= A、B、C、E、F

限制到最后 (2) = E, F

关于java - firebase startAt() endAt() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com