我遇到了类似用户输入的注册号,并验证并读取其中所有数据并将其值设置为文本视图的问题
如果用户输入注册66,然后验证该注册并从66中读取所有数据,并将文本视图的值设置为主题标记,如果我想解决上述问题,我该怎么办?
我尝试过:
reff= FirebaseDatabase.getInstance().getReference().child("Marks");
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String mm=dataSnapshot.child("mcad").getValue().toString();
String jm=dataSnapshot.child("java").getValue().toString();
String nm=dataSnapshot.child("nma").getValue().toString();
txtmcadmarks.setText(nm);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
首先,您的数据库参考会返回一个数据列表,因此您需要以列表形式接收数据。
第二,如果要基于enrollment
过滤数据库,则在数据库引用中添加查询。
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Query query = databaseReference.child("Marks").orderByChild("enrollment").equalTo(66);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot data: dataSnapshot.getChildren()){
String mm=data.child("mcad").getValue().toString();
String jm=data.child("java").getValue().toString();
String nm=data.child("nma").getValue().toString();
txtmcadmarks.setText(nm);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});