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

如何在数组中安排 firebase 检索?

如何在数组中安排 firebase 检索?

繁星淼淼 2023-06-08 17:39:04
我正在尝试检索并显示用户过去的付款。为此,我使用了一个 Recycler-view,它从数组中获取信息并显示所有过去的交易。从上面的数据库(在图像中),我想检索此数据并将其存储在以下格式的数组中:amount[]={"100","200"};             rid[]={"123456",123456"};             date_time[]={"16 Aug 2019 14:10:26","16 Aug 2019 14:12:26"};以下是我需要帮助的 Android Studio 代码:      FirebaseDatabase.getInstance().getReference().child("payments").child(firebaseAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                //How to retrieve the data in above array format            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {            }        });
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您可以使用List:


List<String> amountList   = new ArrayList<>();

List<String> ridList      = new ArrayList<>();

List<String> dateTimeList = new ArrayList<>();     

FirebaseDatabase.getInstance().getReference().child("payments").child(firebaseAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {

   @Override

   public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

    for(DataSnapshot ds : dataSnapshot.getChildren()){

        String amount    = ds.child("amount").getValue(String.class);

        String rid       = ds.child("rid").getValue(String.class);

        String dateTime  = ds.child("date_time").getValue(String.class);

        amountList.add(amount);

        ridList.add(rid);

        dateTimeList.add(dateTime);

     }             

   }


   @Override

   public void onCancelled(@NonNull DatabaseError databaseError) {


    }

  });

你databaseReference在 nodeuid然后你在里面循环uid并获取每个属性的值,然后你可以将它们添加到 a 中List。


查看完整回答
反对 回复 2023-06-08
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

int count = (int) datasnapshot.getChildrenCount();

String amount[]=new String[count];             

....

// initialize other arrays


int i=0; //loop counter

for(Datasnapshot post: datasnapshot.getChildren){

 ...

 //iterate every value and insert into respective array

}

除了这个之外,我在单个 Firebase 查询中看不到任何方式,或者您可以改用 List<> 。


查看完整回答
反对 回复 2023-06-08
  • 2 回答
  • 0 关注
  • 88 浏览

添加回答

举报

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