首页 > 解决方案 > 从firebase检索值并将它们提交到列表视图的Android问题

问题描述

我的代码有问题 我无法在列表视图中显示数据 我想从我的用户那里检索特定日期、时间和位置的瀑布

下面是我的代码

    l1 = (ListView)findViewById(R.id.historyListView);

    user = FirebaseAuth.getInstance().getCurrentUser();
    ref = FirebaseDatabase.getInstance().getReference();   

    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                showData(dataSnapshot);         
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

private void showData(DataSnapshot dataSnapshot){
    for(DataSnapshot ds : dataSnapshot.getChildren()) {
        Fall fall = new Fall();
        fall.setDate(ds.child(user.getUid()).getValue(Fall.class).getDate());
        fall.setTime(ds.child(user.getUid()).getValue(Fall.class).getTime());
        fall.setLocation(ds.child(user.getUid()).getValue(Fall.class).getLocation());

        ArrayList<String> array = new ArrayList<>();
        array.add(fall.getDate());
        array.add(fall.getTime());
        array.add(fall.getLocation());
        Toast.makeText(getApplicationContext(),fall.getDate().toString(), Toast.LENGTH_LONG).show();
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
        l1.setAdapter(adapter);

    }
  }
}

我的数据库结构是大 ID 是用户 UID

在此处输入图像描述

标签: androidfirebase

解决方案


首先是你需要 addListener 在正确的节点。FirebaseDatabase.getInstance().getReference()是根引用,如果您在根引用处添加Listener 意味着您检索所有数据库数据。

我建议您阅读本指南 并观看此YoutubeLink以获取查询数据并正确设置数据


推荐阅读