Firebase数据库Object.toString()'对空对象的引用错误

时间:2018-07-20 19:02:21

标签: android firebase-realtime-database

因此,我有一个具有用户名的Viewholder,并在其下放置了该用户收到的最后一条消息,在我的查询中,我得到了数据库中的最后一个节点,其中有我的代码:

Query lastQuery = allDb.child("ReceivedMessages").child(mCurrent_user_id).child(list_user_id).orderByKey().limitToLast(1);
                    lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                                String message = dataSnapshot.child("message").getValue().toString();
                                friendViewHolder.lastMessage.setText(message);

                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                            //Handle possible errors.
                        }
                    });

这是我的数据库结构(也我确定引用是正确的,因为每当我将所有数据分配给textView时,它都会给我最后一个节点以及消息和日期等..但是我只想要消息)enter image description here

这是我的错误 enter image description here

1 个答案:

答案 0 :(得分:1)

我希望这能做得到。

Query lastQuery = allDb.child("ReceivedMessages").child(mCurrent_user_id).child(list_user_id).orderByKey().limitToLast(1);
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot ds: dataSnaphot.getChildren()) {
            String message = ds.child("message").getValue().toString();
            friendViewHolder.lastMessage.setText(message);     
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        //Handle possible errors.
    }
});
相关问题