Java 我想从firebase数据库获取单个文本视图中的完整数据

Java 我想从firebase数据库获取单个文本视图中的完整数据,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我已经创建了一个条形码扫描仪应用程序,它读取条形码id,并需要作为语音输出的输出。为了读取所有内容,我需要在一个TextView中获取所有数据。我尽力从数据库中添加查询。但它仅在TextView中显示为com.google.firebase.database。Query@9fc9e4d和我的应用程序TTS引擎可以清晰地读取它。但我需要将其设置为数据库中单个TextView下的所有数据才能说出。请帮帮我????这里只有我附加的结果处理方法 @Override public void handle

我已经创建了一个条形码扫描仪应用程序,它读取条形码id,并需要作为语音输出的输出。为了读取所有内容,我需要在一个
TextView
中获取所有数据。我尽力从数据库中添加查询。但它仅在
TextView
中显示为
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) {

        }
    });
}


试试这样的方法

@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() : "");
        }
    }

试试这样的

@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() : "");
        }
    }

无需运行多个查询来根据
id
筛选数据。检查以下内容:

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

        String  toSpeak = "";

        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {

            String name = childSnapshot.child("name").getValue(String.class);
            String price = childSnapshot.child("price").getValue(String.class);
            String details = childSnapshot.child("details").getValue(String.class);

            toSpeak = name + ", " + price + ", " + details;
        }

        text.setText(toSpeak);

        txt.speak(toSpeak, TextToSpeech.QUEUE_FLUSH,null);
    }

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

    }
});

无需运行多个查询来根据
id
筛选数据。检查以下内容:

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

        String  toSpeak = "";

        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {

            String name = childSnapshot.child("name").getValue(String.class);
            String price = childSnapshot.child("price").getValue(String.class);
            String details = childSnapshot.child("details").getValue(String.class);

            toSpeak = name + ", " + price + ", " + details;
        }

        text.setText(toSpeak);

        txt.speak(toSpeak, TextToSpeech.QUEUE_FLUSH,null);
    }

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

    }
});

您能指出您想要从数据库中获取哪些文本吗?还有,为什么要在firebase操作中添加
setContentView
,而不是
onCreate
?这是一个盲人应用程序,通过手势来处理,因此详细信息、姓名、,price应该显示在textview上,以便在扫描仪获取条形码id时一起发言,并需要检查id与我在数据库中写入的数据库id。您能指出您希望从数据库中获取哪些文本吗?还有,为什么要在firebase操作中添加
setContentView
,而不是
onCreate
?这是一个盲人应用程序,通过手势来处理,因此详细信息、姓名、,price应该显示在textview上,以便在扫描仪获取条形码id时一起说话,并且需要检查id与我在数据库中写入的数据库id。先生,现在文本视图中没有显示任何内容…请您帮我检查一下。我不知道
id
您使用了什么。尝试使用
databasefetch.orderByChild(“id”).equalTo(“qwer”)
和checkSir,Md.Asaduzzaman感谢您宝贵的回答。代码确实对我有用,但我用另一个代码编辑了你的代码。然后,它工作顺利。所以,谢谢你对这个问题的解答。非常感谢你@jomson pullokaran,有什么问题吗?请接受答案,以便其他人能发现它的帮助。谢谢,现在文本视图中没有显示任何内容……请帮我检查一下。我不知道
id
你用什么。尝试使用
databasefetch.orderByChild(“id”).equalTo(“qwer”)
和checkSir,Md.Asaduzzaman感谢您宝贵的回答。代码确实对我有用,但我用另一个代码编辑了你的代码。然后,它工作顺利。所以,谢谢你对这个问题的解答。非常感谢你@jomson pullokaran,有什么问题吗?请接受答案,以便其他人能发现它的帮助。谢谢