Firebase获取节点的所有数据

时间:2017-04-20 09:11:52

标签: android firebase firebase-realtime-database

我无法从节点获取数据。我在listview中显示数据。 Firebase

带有“VVAA ..”的uid明星的顶部是我的用户的uid。我可以达到“34ern12”节点的数据。 (顺便说一下,我们没有定义这个节点的名称。用户这样做。)但我想要到达其他节点的数据。我的意思是我想要访问我的useruid节点的节点的所有数据。我怎么能这样做?你有什么想法吗?

这是我的代码:

    firebaseAuth=FirebaseAuth.getInstance();
    userId=firebaseAuth.getCurrentUser().getUid().toString();
    listview=(ListView)view.findViewById(R.id.listview);
    adapter=new ArrayAdapter<String>(getActivity(),R.layout.support_simple_spinner_dropdown_item,list);
    listview.setAdapter(adapter);


   datareference= FirebaseDatabase.getInstance().getReference().child("Arabalar").child(userId).child("34ern12");


    datareference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value=dataSnapshot.getValue(String.class);
            list.add(value);
            adapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

            String value=dataSnapshot.getValue(String.class);
            list.remove(value);
            adapter.notifyDataSetChanged();

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(getActivity(),AracEkle.class));
        }
    });

    return view;

}}

1 个答案:

答案 0 :(得分:0)

请使用此代码:

ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot != null) {
            @SuppressWarnings("unchecked")
            Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
            if (map != null) {
                //Do everything you want
            }
        }       
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
    };
datareference.addListenerForSingleValueEvent(eventListener);

您需要的数据位于map对象内。希望它有所帮助。