如何从Firebase实时数据库中检索列表?

时间:2019-01-18 17:08:56

标签: java android firebase firebase-realtime-database

我正在开发出勤应用程序。我想检索带有礼物数量的学生列表,并将其填充在列表视图中。

我尝试了以下代码,但我得到了一位特定学生的礼物。

 DatabaseReference ref = 
 FirebaseDatabase.getInstance().getReference().child("Students 
 Attendance").child(selectedItem).child(id).child(subject);
 ref.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.getValue() != null) {

        Userlist.add(dataSnapshot.getValue().toString());
        addStudents(Userlist);
                      }else {
          Toast.makeText(getApplicationContext(), "****NO Record 
          FOUND****", Toast.LENGTH_LONG).show();
                      }
                  }

我希望输出为学生列表,并在列表视图中填充礼物数量。

My firebase Structure

I want this kind of result

2 个答案:

答案 0 :(得分:1)

由于您制作的应用程序会计算特定学生的礼物数量。您可以这样操作:

首先,您可以将要存储在数据库中的值设置为: var xAxisCall = d3.axisBottom(x); g.append("g") .attr("class", "x axis") .attr("transform", "translate(0, " + height + ")") .call(xAxisCall) .selectAll("text") .attr("y", "10") .attr("x", "-5") .attr("text-anchor", "end") .attr("transform", "rotate(-40)") .style("fill", "#999999");

这会将数据存储为:- 山姆70岁 75岁的麦克

现在使用ChildEventListener检索该数据:

mFirebaseDatabaseReference.push().setValue(new String[]{student_name,attendance})

这里没有要注意的一件事是,您不必在这里使用mChildEventListener = new ChildEventListener() { @Override public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { String data = dataSnapshot.getValue(); mMyAdapter.add(data); ); 方法时放置student_id,因此它为每个孩子提供了一个新的id,因此我们不必担心数据被名称或标记相同的学生打扰。

答案 1 :(得分:0)

     ref.addChildEventListener(new ChildEventListener() {
           @Override
           public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            if (dataSnapshot.exists()) {                      
             String value = dataSnapshot.getValue().toString();
             String key = dataSnapshot.getKey();
             String record = key + ":              " + value;
                        Userlist.add(record);
                        addStudents(Userlist);
         }

对我有用。

相关问题