2017-04-19 5 views
0

ユーザ名の値をMyNameの値に入れて、それを使用しようとするたびにNullポインタの例外が表示されるため、リアルタイムの値を取得する方法を教えてください。firebase内部クラスからオブジェクト値を取得する方法ValueEventListner in android

String username; 

ref.addValueEventListener(new ValueEventListener() { 


@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 
    String userinfo = dataSnapshot.getValue(User.class); 
    username = userInfo.username; 
} 

@Override 
public void onCancelled(FirebaseError firebaseError) { 

} 
}); 

String MyName = username; 
+0

あなたが持っているまで、したがって、あなたががmyName変数を使用することはできません、私はがmyName値 – liorsolomon

答えて

0

myName変数を最初に宣言してから、このようにonDataChangeコールバック内に値を割り当てる必要があります。

String username; 
String myName; 

ref.addValueEventListener(new ValueEventListener() { 

@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 
    String userinfo = dataSnapshot.getValue(User.class); 
    username = userInfo.username; 
    myName = username; 
    //Call any method/operation that needs to use myName variable here 
    ... 
} 

@Override 
public void onCancelled(FirebaseError firebaseError) { 

} 
}); 
+0

を再フォーマットだけでなく、それがnullポインタ例外を示してください。 (onDataChangeが呼び出された後に)値が割り当てられます。 onDataChangedが呼び出された後にmyNameを使用するメソッドまたは操作を呼び出すことを試みてください。 – An9shp

+0

を使用しようとするたびにOnDataChangeの方法は、非同期操作のコールバックですので、それがあなたのコード – wnieves19

関連する問題