2017-10-10 79 views
0

我們正試圖在列表中顯示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 /火力-機器人/)。 –

回答

0
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(); 


    } 
0

嘗試使用此代碼從火力地堡中的「消息」引用的所有項目名單。

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字段的消息模型類。

相關問題