从firebase读取数据并设置textview的值

read data from firebase and set the value of textview

我遇到了这样的问题,例如用户输入注册号并验证并读取其中的所有数据并将值设置为文本视图

如果用户输入注册 66 然后验证注册并从 66 读取所有数据并将文本视图的值设置为 subjects.what 如果我想解决上述问题我需要做什么?

我试过了:

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) {

    }
});

首先,您的数据库引用 returns 您是一个数据列表,因此您需要以列表的形式接收数据。

其次,如果您想根据 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) {

        }
    });