如何获得ArrayList中提到的Android中的Firebase儿童?[安卓]

如何获得ArrayList中提到的Android中的Firebase儿童?[安卓],android,firebase,firebase-realtime-database,firebaseui,nosql,Android,Firebase,Firebase Realtime Database,Firebaseui,Nosql,我有一个Firebase项目,其中有多个事件 我有一个最喜欢的活动列表,比如 收藏夹:[2017071227185209、2017071271534874、2017072819680542、2017073111392921] 现在我只获取这些事件的方法是 Query userRef = mDatabase.child("Events"); userRef.addValueEventListener(new ValueEventListener() { @Override

我有一个Firebase项目,其中有多个事件

我有一个最喜欢的活动列表,比如

收藏夹:[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回收器视图中获取数据?我所知道的唯一方法是放置一个适当的查询,它为您执行所有筛选。对此是否有适当的查询?

请尝试以下操作:

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);
   }
}
List eventList=new ArrayList();
对于(DataSnapshot数据:DataSnapshot.getChildren()){
事件=data.getValue(Event.class);
如果(event.isFavorite()){//,请在此处更改逻辑
添加(事件);
}
}

我建议您使用以下方法:

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
             } 
        }
    }
}

希望有帮助。

要做到这一点,我必须放弃Firebase recycler视图,创建自己的视图。谢谢你的解决方案