Android-从firebase读取数据

Android-从firebase读取数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有一个数据集,如: Root: ----Users: --------UserID: ------------UserID: ------------Username: ------------Password: 我想使用从上一个活动中获得的userID获取用户的用户名,我已经为其编写了一个查询: tableDatabaseReference = FirebaseDatabase.getInstance().getReference("Users"); tableNameQuery = ta

我有一个数据集,如:

Root:
----Users:
--------UserID:
------------UserID:
------------Username:
------------Password:
我想使用从上一个活动中获得的userID获取用户的用户名,我已经为其编写了一个查询:

tableDatabaseReference = FirebaseDatabase.getInstance().getReference("Users");
tableNameQuery = tableDatabaseReference.child("Username").orderByChild("UserID").equalTo(userID);

但是,这不会显示任何结果。

用户id始终是唯一的,因此最好将其放在Child中,并且在引用后不需要提供用户Child

tableDatabaseReference = FirebaseDatabase.getInstance().getReference("Users");
tableNameQuery = tableDatabaseReference.child(userID);
tableNameQuery.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String name1 = dataSnapshot.child("Username").getValue(String.class);
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.e(TAG, "onCancelled", databaseError.toException());
    }
});

您可以通过以下查询读取用户名

        String userId = getIntent().getStringExtra("user_id");
        FirebaseDatabase.getInstance().getReference("Users/"+userId)
                .addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        //Use your Pojo class for reading values from database
                        OtherUser user = dataSnapshot.getValue(OtherUser.class);
                        Log.i("user",user.UserName);
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });
在OtherUser跟随的地方,用您自己的pojo替换OtherUser

    class OtherUser{
        String UserName;
        String Password;
    }

与其描述数据库的外观,不如添加一个JSON文件或至少是一个屏幕截图。谢谢你的帮助!但是有一个问题,为什么equalTo()不起作用?这不是equal的问题,而是您提供的数据库路径的问题