DataSnapshot子返回null

时间:2018-04-18 17:00:39

标签: android firebase firebase-realtime-database

由于某种原因,快照孩子"身体"返回NULL,但标题不是......真的不确定为什么标题返回它的价值就好了。使用Java。

enter image description here

DatabaseReference mRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mPostsRef = mRef.child("Posts");
String userKey = "-LAKM7c_1Pr7g872svLA"; // Just for testing purposes

mPostsRef.child(userKey).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            String title = dataSnapshot.child("title").getValue(String.class);
            String body = dataSnapshot.child("body").getValue(String.class);

            Log.d("testing", "Title: " + title + " | Body: " + body);
        }

    });

我的日志:

  

标题:测试1 |正文:null

     

标题:测试2 |正文:null

2 个答案:

答案 0 :(得分:1)

改变这个:

String body = dataSnapshot.child("body").getValue(String.class);

进入这个:

String body = dataSnapshot.child("body").getValue().toString();

答案 1 :(得分:1)

试试这个!

DatabaseReference mRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mPostsRef = mRef.child("Posts");
String userKey = "-LAKM7c_1Pr7g872svLA"; // Just for testing purposes

mPostsRef.child(userKey).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

       for(DataSnapshot snapshot : dataSnapshot.getChildren())
          {
             Object title = dataSnapshot.child("title").getValue();
             Object body = dataSnapshot.child("body").getValue();

               Log.d("testing", "Title: " + title + " | Body: " + body);
          }


        }

    });