Android - 使用快照遍历firebase数据库

时间:2017-09-20 02:57:17

标签: java android firebase-realtime-database

这是我在firebase中的数据库  

这是我遍历数据库的java代码。

 mref = new Firebase("https://social-axxxxxcf.firebaseio.com/user");
 mref.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
        String email=userSnapshot.child("email").getValue().toString();
        String urL=userSnapshot.child("url").getKey().toString();
         Log.e("Datas= ",email+" " +url);
    }


        }


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

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

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

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
        Log.e("TAG= ",firebaseError.getMessage());
        }


    });

我的问题是,当我运行此代码时,我的应用程序崩溃,甚至日志中的错误都没有显示  任何人都可以帮助我。

2 个答案:

答案 0 :(得分:2)

由于您在ChildEventListener上使用/user,因此 onChildAdded下的每个节点都会调用/user。这意味着您不需要循环dataSnapshot.getChildren()

public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    String email=dataSnapshot.child("email").getValue(String.classs);
    String urL=dataSnapshot.child("url").getValue(String.class);
    Log.e("email="+email+" url="+url);
}

答案 1 :(得分:0)

检查以下链接它是使用android实现firebase的工作示例。

link