想知道使用Query dataSnapshot是否有特定的原因或好处,而不是常规的DataBase Reference dataSnapshot。请参阅示例 - 我试图通过playerName查找有关玩家的信息。我的Json Hierarchy是这样的: -
播放器>> PlayerId(firebase生成的Id)>> {playerName,playerAge,playerScore}
我可以两种方式做到这一点 选项1 ...带查询
gamesDBref = FirebaseDatabase.getInstance().getReference("Players");
Query query = gamesDBref.orderByChild("playerName").equalTo("FlashBoy");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e("R&D", "toString()" + dataSnapshot.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
选项2 ...带数据库参考
gamesDBref = FirebaseDatabase.getInstance().getReference("Players");
gamesDBref.orderByChild("playerName").equalTo("FlashBoy").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e("R&D", "toString()" + dataSnapshot.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我的结果都是一样的,但其中一种效率低下吗? 谢谢你的帮助/知识。
答案 0 :(得分:1)
这两段代码以完全相同的方式完成相同的操作。只使用当前的片段,它们甚至可以创建完全相同数量的对象。
如果您需要在多个位置使用相同的Query
,那么您的第一种方法允许您重复使用相同的Query
对象。这会减少内存使用量。
但说实话,它是一种微观优化,不太可能以任何实质性方式提供帮助。