2017-07-10 28 views
0

コードでわかるように、getValue()を使用して私のデータベースから値を取得しました。しかし、その値をprivate static int変数(「バージョン」と呼ばれます)に保存したい場合は、何も起こりません。Firebaseデータベースからの値を取得していません

mDataBaseVersion =FirebaseDatabase.getInstance(link).getReference().getRef().child("version/number"); 

    mDataBaseVersion.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

       setVersion((Integer) dataSnapshot.getValue()); 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Toast.makeText(getApplicationContext(),"Error at version check",Toast.LENGTH_LONG).show(); 

     } 
    }); 

"バージョン" セッター:

public void setVersion(int ver) 
{ 
    version=ver; 
} 

とJSONの一部私が到達すべきか:

{ 
"version" : { 
     "number" : 2 
     } 
} 

私は自分自身で問題を解決しようとしましたが、私は本当に何が起こっているのか理解できません。

私のDBから他の要素を取得するのに同じ構造を使用しています(それはうまくいきます)。

誰かがなぜそれが起こっているのか分かりますか?

+0

を実際のコードではなく、それの写真を投稿してください。また、お客様のご期待に沿って問題の[最小限の、完全かつ検証可能な例](https://stackoverflow.com/help/mcve)をご提供ください。 –

+0

投稿を編集しました。問題を理解するのに役立つことを願っています。 –

答えて

0

このコードを使用してください:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference versionRef = rootRef.child("version"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     Integer number = dataSnapshot.child("number").getValue(Integer.class); 
     Log.d("TAG", number); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
versionRef.addListenerForSingleValueEvent(eventListener); 
+0

ありがとう!それは私をたくさん助けました。 –

関連する問題