2017-10-08 29 views
0

有人可以幫助我使用valueeventlstener嗎?我如何獲得給定名稱firebase的顏色

我有在火力

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

現在我想的名字電影時給出得到fffffdd4字符串中的這個數據庫結構。

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) { 

    } 
}); 

這個代碼不工作

回答

2

當您執行對火力地堡數據庫的查詢,也將有可能是多個結果。所以快照包含了這些結果的列表。即使只有一個結果,快照也會包含一個結果列表。

你的代碼需要處理這個。最簡單的方法爲您的代碼:

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按鈕。如果它回答了您的問題,請點擊複選標記以接受它。這樣別人就知道你已經(充分)幫助了。 –

相關問題