UserInfo
というクラスを作成し、firebaseデータベースからすべてのユーザーデータを取得しました。 firebaseデータ(ユーザ名)を取得するために私が使用した方法を次に示します。firebaseデータベースから別のクラスを介してデータを取得中にNullPointerExceptionが発生しました
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;
}
炎ベースリンクに問題はありません。そしてそれはユーザー名も与えます。
しかし、別のクラスで私はユーザー名を取得したいと思います。
だから、私は私のonCreate
方法で、以前のコードを書いた
UserInfo userInfo = new UserInfo();
...そのクラスのオブジェクトを作り、ユーザ名を取得するには、
username = userInfo.getUsername();
。
私のアプリでボタンをクリックすると、私は自分の子としてユーザー名を追加しようとしています。
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");
}
);
よくこのコードは、ユーザー名をダミーの定義済み文字列データに置き換えたときに機能します。しかし、ユーザー名を追加すると、次のエラーが表示されます。
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)
忍耐力を持ってください---あなたは25分前にこの質問をしました!どの行がNPEをスローし、どの変数がヌルですか? –
ユーザ名がNPEを投げていて、申し訳ありません。@HovercraftFullOfEels – Doge
この行はFirebaseです。addChild = NotificationURL.child(userInfo.getUsername()); – Doge