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

问题描述 投票:0回答:1

我遇到了类似用户输入的注册号,并验证并读取其中所有数据并将其值设置为文本视图的问题enter image description here

如果用户输入注册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) {

    }
});
android firebase firebase-realtime-database textview
1个回答
1
投票

首先,您的数据库参考会返回一个数据列表,因此您需要以列表形式接收数据。

第二,如果要基于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) {

        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.