从firebase获取数据返回null

时间:2018-03-25 16:11:33

标签: javascript android database firebase nullpointerexception

    private void fetchMessages() {

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference usersRef = rootRef.child("Messages").child(MessageSenderId).child(MessageRecieverId);
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            ListView listView = (ListView) findViewById(R.id.messageList);
            ArrayAdapter<String> adapter;
            adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, al);
            adapter.notifyDataSetChanged();
            listView.setAdapter(adapter);
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                String message = ds.getValue().toString();
                message = ds.child("message").getValue().toString();
                al.add(message);
            }
            listView.setAdapter(adapter);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
            Toast.makeText(getApplicationContext(), "Please Check Your Internet Connection", Toast.LENGTH_SHORT).show();
        }
    };
    usersRef.addListenerForSingleValueEvent(eventListener);
}

刚开始这个应用程序...所以目前没有消息,但是当我打开这个类时,它在调用fetchmessages方法的行上显示一个nullpointerexception ...我知道这个错误被调用,因为当前没有消息在db但我该如何解决这个问题?添加if语句不起作用

错误

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appmaster.akash.messageplus/com.appmaster.akash.messageplus.Chat}: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2455)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2515)
                                                                                 at android.app.ActivityThread.access$1000(ActivityThread.java:154)
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                 at android.os.Looper.loop(Looper.java:157)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5555)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
                                                                              Caused by: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
                                                                                 at com.google.firebase.database.DatabaseReference.child(Unknown Source)
                                                                                 at com.appmaster.akash.messageplus.Chat.fetchMessages(Chat.java:122)
                                                                                 at com.appmaster.akash.messageplus.Chat.onCreate(Chat.java:108)
                                                                                 at android.app.Activity.performCreate(Activity.java:6357)
                                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2408)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2515) 
                                                                                 at android.app.ActivityThread.access$1000(ActivityThread.java:154) 
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379) 
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                 at android.os.Looper.loop(Looper.java:157) 
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5555) 
                                                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745) 
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635) 

0 个答案:

没有答案