从firebase数据库

时间:2017-01-29 14:10:36

标签: java android firebase nullpointerexception

我创建了一个名为UserInfo的类来从firebase数据库中获取所有用户数据。这是我用来获取firebase数据(用户名)的方法。

 public String getUsername() {
        final Firebase usernameLink = new Firebase(firebaseLink + getUid());
        usernameLink.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                username = (String) dataSnapshot.getValue();
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }
        });
        return username;
    }

firebase链接没有问题。它也提供了用户名。

但是在另一个课程中,我想获得用户名。

所以我做了那个班的对象..

UserInfo userInfo = new UserInfo();

要获取用户名,

username = userInfo.getUsername();

我在onCreate方法中编写了上一段代码。

点击我的应用程序中的按钮,我试图将用户名添加为我的孩子。

send_request_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                request_text = request_msg.getText().toString();
                URL = new Firebase(firebaseUrl);
               Firebase addChild = URL.child(username);
                                addChild.setValue("hhhhh");        
                        }
                );

当我用一些虚拟的预定义字符串数据替换username时,这段代码可以工作。但是当我添加用户名时,它会给我以下错误。

java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
 at com.firebase.client.Firebase.child(Firebase.java:187)
 at com.buckydroid.anonchat.SendRequest$1$1.onClick(SendRequest.java:67)
 at android.view.View.performClick(View.java:5637)
 at android.view.View$PerformClick.run(View.java:22433)
 at android.os.Handler.handleCallback(Handler.java:751)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6126)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

1 个答案:

答案 0 :(得分:1)

确保在运行此方法之前初始化变量firebaseLink并将其分配给某些数据。我看到的NullPointerException输出告诉我你正在尝试将null变量传递给Firebase类的pathString变量。