gpt4 book ai didi

java - 使用 Firebase 从 for each 获取每个元素

转载 作者:行者123 更新时间:2023-11-29 23:31:04 25 4
gpt4 key购买 nike

如果我用这个来获取 3 个值:

myRef.child("users").orderByKey()
.limitToLast(3)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
Users us = snapshot.getValue(Users.class);
if (firstvalue > second value) {
//get third value
}
Log.e("Datos: ", "" + us.getNumber());
}
}

它如何从 dataSnapshot 中的 for each 循环中获取每个值,比方说:

us.getNumber().get(0);
us.getNumber().get(1);
us.getNumber().get(2);

谢谢

最佳答案

正如我在您的代码中看到的,您正在使用 limit(3) 调用,它将 DataSnapshot 对象中的结果限制为三个。因此,要分别获取这三个用户,请将他们添加到 list 并使用 list.get(position);,如下所示:

ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Users> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Users users = ds.getValue(Users.class);
list.add(users);
}

Users firstUser = list.get(0);
Users secondUser = list.get(1);
Users thirdUser = list.get(2);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
};
myRef.addListenerForSingleValueEvent(valueEventListener);

关于java - 使用 Firebase 从 for each 获取每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52658098/

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