Firebase从多个引用中读取数据

时间:2018-01-24 09:08:31

标签: java android firebase firebase-realtime-database

我正在尝试从单个函数中的多个子元素中获取Firebase数据库中的数据。我在Firebase FavoritesUsers

中有两个子节点

我正在使用RecyclerView显示收藏夹用户列表,但我想从“用户”节点获取一个值“Online”。

我在收藏夹上添加addValueEventListener并在收藏夹addValueEventListener中的用户上添加addListenerForSingleValueEvent,但我的addListenerForSingleValueEvent为null值。 有我的代码:

        mFavouriteDBRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                mList.clear();
                if(dataSnapshot.getChildrenCount() > 0){
                    for(DataSnapshot snap: dataSnapshot.getChildren()){
                        final Favourites user = snap.getValue(Favourites.class);
                        final FavouritesList[] holdObj = null;
                        //if not current user, as we do not want to show ourselves then chat with ourselves lol
                        try {
                            if(mAuth.getCurrentUser().getUid().equals(user.getUserId())){
                                //Firebase Reading data
                                mUsersDBRef = FirebaseDatabase.getInstance().getReference().child("Users");
                                mUsersDBRef.child(mAuth.getCurrentUser().getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(DataSnapshot dataSnapshot) {
                                        mUsersDBRef.child(mAuth.getCurrentUser().getUid()).child("online").onDisconnect().setValue(false);
                                        String local =dataSnapshot.child(mAuth.getCurrentUser().getUid()).child("online").getValue().toString();
                                        if(local.equals("true")){

                                            holdObj[0] = new FavouritesList(mAuth.getCurrentUser().getUid(),user.getFavouriteId(),user.getFavouriteName(),user.getFavouriteCity(),user.getFavouriteCountry(),user.getFavouriteAge(),user.getFavouriteGender(),user.getFavouriteKeyword(),user.getPushKey(), "true","Link");
                                        }else{

                                            holdObj[0] = new FavouritesList(mAuth.getCurrentUser().getUid(),user.getFavouriteId(),user.getFavouriteName(),user.getFavouriteCity(),user.getFavouriteCountry(),user.getFavouriteAge(),user.getFavouriteGender(),user.getFavouriteKeyword(),user.getPushKey(), "false","Link");
                                        }

                                        mList.add(holdObj[0]);
                                    }

                                    @Override
                                    public void onCancelled(DatabaseError databaseError) {

                                    }
                                });

                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                populaterecyclerView();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        }); 

这里是我的populaterecyclerView();班级

 private void populaterecyclerView(){
    adapter = new UserFavouritesMeHomeListAdapter(context,mList);
    adapter.setClickListener(UserFavouritesMeListHomeFragment.this);
    recyclerView.setAdapter(adapter);
} 

由于

图片链接: http://userdata.in/singls/images/profile/WobiUh7Zb2bjszmYN0LofK7Pm0z1_20180124042847_file_cover.jpg

数据想要在阅读收藏夹时获取 http://userdata.in/singls/images/profile/WobiUh7Zb2bjszmYN0LofK7Pm0z1_20180124044659_file_cover.jpg

0 个答案:

没有答案