2017-07-14 59 views
0

我有一個Firebase項目,其中有多個事件。如何獲取ArrayList中提到的Android中的Firebase子項? [Android]

list of events

而且我有喜歡

收藏喜愛的事件列表:2017071227185209,2017071271534874,2017072819680542,2017073111392921]

現在我的方法得到的只有這些事件是

Query userRef = mDatabase.child("Events"); 
userRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

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

      if(Favourites.contains(snapshot.getValue().toString)) 
       { 
        //The event is favourite, get data here 
       } 
       } 


     } 

我應該如何在Firebase回收站視圖中獲取數據?我知道的唯一方法是放置一個合適的查詢,爲您完成所有過濾。有沒有適當的查詢呢?

回答

0

嘗試如下:

List<Event> eventList = new ArrayList<>(); 

for (DataSnapshot data : dataSnapshot.getChildren()) { 
    Event event = data.getValue(Event.class); 
    if (event.isFavorite()){ // or change your logic here 
     eventList.add(event); 
    } 
} 
+0

爲此,我將不得不放棄Firebase回收站視圖並創建自己的視圖。感謝您的解決方案 – anon

0

我recomand你使用這種方法:

void checkIfEventExists(String event) { 
    Query userRef = mDatabase.child("Events"); 
    userRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.child(event).exists()) { 
       //get event data 
      } 
     } 
    } 
} 

希望它能幫助。

相關問題