2016-10-09 3 views
0

私は自分のDB内で変更するたびに更新するサッカー用の基本的なアプリです。ValueEventListenerから関連するキーを取得する

私は、このようにFirebaseを使用しています:

enter image description here

私はaddValueEventListenerを使用しようとしているが、私は値の一つは、(DIFを変える一つであるかわかりません、スコア、ポイント...)したがって、私は更新する必要があります私のテーブルのフィールドはありません。

public class table extends AppCompatActivity { 
Button insert; 
TextView name, games, win, lost, tie, score, dif, points; 
Team A; 
DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference FootballRef = mRootRef.child("Football"); 
DatabaseReference HouseARef = FootballRef.child("HouseA"); 


protected void onStart() { 
    super.onStart(); 
    ValueEventListener postListener = new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // Get Post object and use the values to update the UI 
      String key = dataSnapshot.getKey() ; 
      Toast.makeText(table.this,key, Toast.LENGTH_SHORT).show(); 
      // ... 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Getting Post failed, log a message 

      // ... 
     } 
    }; 
    HouseARef.addValueEventListener(postListener); 
} 
} 

のは、私はhousaAの名前を更新していましょう、私は(私の場合はname)を更新しましたキーを取り戻すしたい場合は、ここを参照してください、私は dataSnapshot.getKey()にトーストを使用しています私が戻ってくるのはHouseAで、nameではない。

+0

を変更されたキーを取得することができます質問。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

答えて

0

valuelistenerを使用してこれを行うことはできません。

代わりにhouseAにchildeventlistenerを挿入します。

今onChildChangedの内側に、あなたはdatasnapshotとしてこのスナップショットから変化したhouseA下の子ノードを取得する必要があり、あなたはあなたの中にJSONツリーの絵を含めました

+0

あなたはこの答えがより正確であるようにするには、jsonツリー構造を共有する必要があります.... – Kushan

+0

ありがとう、私はonChildを使用し、それは働いた:) –

+0

助けてうれし:) – Kushan

関連する問題