答案 0 :(得分:1)
Firebase将始终返回完整节点。所以你不能只为用户返回分数。但是可以使用Firebase查询返回分数和用户所在的公共节点(以-K...
开头的公共节点):
DatabaseReference leadersRef = FirebaseDatabase.getInstance().getReference("Leaders");
Query query = leadersRef.orderByChild("uID").equalTo("vUdnKx...");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child: snapshot.getChildren()) {
System.out.println(child.getKey()+": "+child.child("Score").getValue(Long.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "onCancelled", databaseError.toException());
// ...
}
})
请注意,代码会在结果中的snapshot
上循环。这是因为查询可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
如需更多阅读,请参阅Firebase documentation on handling lists和sorting and filtering data。