如何在一个列表中显示来自Firebase的所有数据?

问题描述:

我们正试图在列表中显示Firebase数据库中的所有数据。这是我们的代码到目前为止:如何在一个列表中显示来自Firebase的所有数据?

FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference myRef = database.getReference("message"); 

如果有人可以帮助我们,这将是伟大的!

谢谢...

+0

我建议检查出的[文件](https://firebase.google.com/docs/database/android/lists-of-data#child-events)或尝试[代码实验室(https://开头codelabs .developers.google.com/codelabs /火力-机器人/)。 –

DatabaseReference myRef = database.getReference("message"); 
    myRef.addListenerForSingleValueEvent(
      new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        //Get map of users in datasnapshot 
        collectPhoneNumbers((Map<String,Object>) dataSnapshot.getValue()); 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 
        //handle databaseError 
       } 
      }); 

private void collectPhoneNumbers(Map<String,Object> users) 
     { 

     ArrayList<String> phoneNumbers = new ArrayList<>(); 

     List<ItemObjectVideo> allItems = new ArrayList<ItemObjectVideo>(); 
     //iterate through each user, ignoring their UID 
     for (Map.Entry<String, Object> entry : users.entrySet()){ 

     //Get user map 
     Map singleUser = (Map) entry.getValue(); 
     //Get phone field and append to list 
     phoneNumbers.add((String)singleUser.get("url")); 

     allItems.add(new ItemObjectVideo((String)singleUser.get("name"))); 

     } 

     rcAdapter = new VideoRecyclerViewAdapter(getApplicationContext(), allItems); 
     rView.setAdapter(rcAdapter); 
     rcAdapter.notifyDataSetChanged(); 


    } 

尝试使用此代码从火力地堡中的“消息”引用的所有项目名单。

myRef.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

        long count = dataSnapshot.getChildrenCount(); 
        if(count != 0){ 
         for (DataSnapshot data : dataSnapshot.getChildren()){ 
          Message mesgObj = data.getValue(Message.class); 
         } 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

您需要创建带Firebase字段的消息模型类。