最佳答案
要获取级别 1
的所有用户,您需要使用查询。因此,请尝试以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query levelQuery = rootRef.child("users").orderByChild("level").equalTo(1);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String username = ds.child("username").getValue(String.class);
Log.d(TAG, username);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
levelQuery.addListenerForSingleValueEvent(valueEventListener);
logcat 中的输出将是:
user1
附注您应该考虑将用户数据存储在用户 ID 下,而不是在推送的 ID 下。以纯文本形式存储凭据并不是一个好主意。我建议您实现Firebase Authentication这样您就可以使用Firebase Security Rules保护您的数据库。如果您想保留自己的身份验证机制,请参阅相关官方文档:
关于java - 获得具有特定值(value)的所有 child 的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174152/