为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Firebase 获取每个元素

使用 Firebase 获取每个元素

哆啦的时光机 2021-10-28 09:44:13
如果我有这个来获取 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);
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

正如我在您的代码中看到的,您正在使用一个limit(3)将DataSnapshot对象中的结果限制为三个的调用。因此,要分别获取这三个用户,请将它们添加到 alist并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);


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信