2017-07-14 33 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 
      } 
     } 
    } 
} 

希望它能帮助。

相关问题