2017-11-17 5 views
0

enter image description here時間の経過とともにランダムキーを使用してFirebaseに更新する温度値を取得します。私はリアルタイムのデータに基づいてアプリの温度値を表示したい。 addValueEventListnerを使用しようとしましたが、値がリアルタイムで変更を管理していないようです。 `public class SecondActivityB extends AppCompatActivity {ランダムキーを使用して子の値を取得する - Firebase

private DatabaseReference mDatebase; 
private TextView mTempView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_second_b); 
    mDatebase = FirebaseDatabase.getInstance().getReference().child("Region 1").child("Parameter Reading").child("temperature"); 
    mTempView = (TextView) findViewById(R.id.tempvalue); 


    mDatebase.addValueEventListener(new com.google.firebase.database.ValueEventListener() { 
     @Override 
     public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 
      String name = dataSnapshot.getValue(String.class); 

      mTempView.setText("Temperature, C: " + name); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    });`} 

答えて

1

あなたのデータを参照する方法が問題です。

あなたのデータの場所は次のとおりです。

水耕監視システム/地域1 /パラメータ測定値/ KzB1 ... /温度

あなたのデータ

リージョンを読む方法1/Parameter Reading/temperature

あなたは子供(水耕モニタリングシステム)をスキップしました。

あなたが今

に直面している問題は、子(KzB1 ...)または(KzB2。)あなたがそれらを知らないので、これらは、あなたがそれらを参照することができないことを意味するプッシュキーです彼らは押されています。

変更:OnDataChangeの中にこれを行うこの

mDatebase = FirebaseDatabase.getInstance().getReference().child("hydroponic-monitoring-system").child("Region 1").child("Parameter Reading"); 

にして、値のイベントリスナーで

mDatebase = FirebaseDatabase.getInstance().getReference().child("Region 1").child("Parameter Reading").child("temperature"); 

あなたの可能な解決策は、そのような子どもたちをループしています

 @Override 
    public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 

      //loop through the keys 
     for (DataSnapshot datasnap: dataSnapshot.getChildren()){ 

      String name = datasnap.child("temperature").getValue(String.class); 
      mTempView.setText("Temperature, C: " + name); 
     } 



    } 

となりますので、プッシュキーの各レベルで一時的な温度をお読みください。

+0

OKです。感謝 –

+0

助けてうれしい、他人が正しいことを知るように受け入れることを確認してください。 –

+0

は、読み込みが更新されると以前の値(温度)を表示する別のtextViewを作成することは可能ですか? –

関連する問題