firebase android在特定位置检索子项列表时遇到问题

时间:2016-07-10 20:08:55

标签: android firebase firebase-realtime-database

我正在尝试检索特定位置的孩子列表,但是当我做我认为正确的事情时,我只会感到胡言乱语。

我的检索数据代码:

??

数据结构的屏幕截图 datastructure

我正在尝试检索userId下面的子项列表。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为你不应该将ChildEventListener添加到firebase数据库的根节点,因为这会下载数据库中的所有数据。

相反,请在特定用户上调用它,因为您只需要该UID。

final String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
mDatabase = FirebaseDatabase.getInstance().getReference(userId);


ChildEventListener childEventListener = new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());
        // maybe use a POJO here to collect data easily
        // the toString() method is maybe for testing??
        adapter.add(dataSnapshot.getValue().toString());
    }
    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {
        // This part should have appropriate code
        // Unless of course you actually want to add it
        //to the adapter everytime
    }
    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {
        // This part should have appropriate code
        // Unless of course you actually want to add it
        //to the adapter everytime
    }
    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {
        Log.d(TAG, "onChildMoved:" + dataSnapshot.getKey());
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.w(TAG, "postComments:onCancelled", databaseError.toException());
        Toast.makeText(getActivity(), "Failed to load entries.",
                Toast.LENGTH_SHORT).show();
    }
};
mDatabase.addChildEventListener(childEventListener);