2017-10-08 31 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按钮。如果它回答了您的问题,请点击复选标记以接受它。这样别人就知道你已经(充分)帮助了。 –

相关问题