2017-10-08 12 views
0

誰かがvalueeventlstenerで私を助けることができますか?どのように私は与えられた名前のfirebaseと色を得ることができます

私は今、私は名前の作品が指定された文字列でfffffdd4取得したいfirebase

Categories 
    -KvxSVFRZIO3ENylF0id 
     color: "ff99ffff" 
     name: "Cars" 
    -KvxbiS-L6iALA7Os8q4 
     color: "fffffdd4" 
     name: "Movies" 

にこのデータベースの構造を持っています。

mkatcolordb.child("Categories").orderByChild("name").equalTo(item).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String areaName = dataSnapshot.child("color").getValue(String.class); 
     StyleableToast.makeText(NewThemaActivity.this, areaName, Toast.LENGTH_LONG, R.style.StyledToast).show(); 


    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

このコードのdoesntの仕事

答えて

2

あなたはFirebaseデータベースに対してクエリを実行すると、潜在的に複数の結果があるだろう。したがって、スナップショットにはそれらの結果のリストが含まれています。結果が1つだけの場合でも、スナップショットには1つの結果のリストが含まれます。

コードでこれを処理する必要があります。コードのための最も簡単な方法:

mkatcolordb.child("Categories").orderByChild("name").equalTo(item).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot colorSnapshot: dataSnapshot.getChildren()) { 
     String areaName = colorSnapshot.child("color").getValue(String.class); 
     StyleableToast.makeText(NewThemaActivity.this, areaName, Toast.LENGTH_LONG, R.style.StyledToast).show(); 
     } 

    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     throw databaseError.toException(); // don't ignore errors 
    } 
}); 
+0

よろしくお願いします。私の答えが役に立つなら、その左側のupvoteボタンをクリックしてください。あなたの質問に答えた場合は、チェックマークをクリックしてそれを受け入れます。そうすれば、他の人はあなたが(十分に)助けられたことを知ることができます。 –

関連する問題