首页 > 解决方案 > 我想从 firebase 数据库中的单个 Textview 中获取完整的数据

问题描述

我创建了一个条形码扫描仪应用程序,它读取条形码 ID 并需要将输出作为语音输出。为了阅读所有内容,我需要将所有数据集中在一起TextView。我尽我所能从数据库中添加查询。但它只显示在TextViewas 中com.google.firebase.database.Query@9fc9e4d,我的应用程序TTS引擎可以清楚地读取它。但是我需要将其设置为来自数据库的单个数据下的所有数据TextView才能说出来。请帮我????这里只有我附上了结果处理方法。

@Override 
public void handleResult(Result result) { final String scanResult = result.getText();

    databasefetch = FirebaseDatabase.getInstance().getReference("save");
    databasefetch.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {



            setContentView(R.layout.activity_second);
            TextView text = (TextView) findViewById(R.id.textView3);
            String tst = databasefetch.child("save").orderByChild("id").equalTo(scanResult).toString();
            text.setText(tst);



            //text to speech
            String  toSpeak=text.getText().toString();
            //Toast.makeText(getApplicationContext(),toSpeak,Toast.LENGTH_SHORT).show();
            txt.speak(toSpeak,TextToSpeech.QUEUE_FLUSH,null);


        }

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

        }
    });
}

在此处输入图像描述

在此处输入图像描述

标签: javaandroidfirebase-realtime-database

解决方案


尝试这样的事情

@Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
            // TODO: handle the post
            YourModelClass object = postSnapshot.getValue(YourModelClass.class);
            text.setText(object.getId().equalsIgnoreCase(scanResult) ? object.getDescription() : "");
        }
    }

推荐阅读