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的问题,而是您提供的数据库路径的问题