Android Studio-Проверка значения из переменной по данным в базе данных Firebase Realtime - PullRequest
1 голос
/ 13 октября 2019

Я новичок в программировании Android, в настоящее время делаю проект по проверке ингредиентов.

Предполагается, что мой проект отсканирует этикетку с ингредиентами, а затем покажет, является ли ингредиент здоровым или нет. Тем не менее, я только смог выполнить часть сканирования (OCR) на данный момент. Я попытался сравнить извлеченный текст с данными об ингредиентах, которые уже находятся в базе данных, но ничего не выводится. Это просто отобразить извлеченный ингредиент.

Ниже приведен мой код для сравнения данных.

final String dataCompare=sb.toString().replaceAll("\\s+","");

DatabaseReference ref=FirebaseDatabase.getInstance().getReference("ingredients").child("iName");

ref.equalTo(dataCompare).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists()){

                mResultEt.setText(dataCompare);
                mStatusEt.setText("Healthy");
                mStatusEt.setTextColor(Color.GREEN);
            }

            // passcode is present, and is correct
            else{
                mResultEt.setText(dataCompare);
                mStatusEt.setText("Non-healthy");
                mStatusEt.setTextColor(Color.RED);
            }
            // incorrect passcode or no passcode

        }

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

        }
    });

  //set text to edit text
mResultEt.setText(sb.toString());

Прежде чем пытаться сравнивать данные в firebase, я попробовал тупой способ, который выглядит следующим образом

/* String dataCompare=sb.toString();

    String b="Flour";

    if (dataCompare.replaceAll("\\s+","").equalsIgnoreCase(b.replaceAll("\\s+",""))){
        mResultEt.setText(sb.toString());
        mStatusEt.setText("Healthy");
        mStatusEt.setTextColor(Color.GREEN);
    }

    else{
        mResultEt.setText(sb.toString());
        mStatusEt.setText("Non-healthy");
        mStatusEt.setTextColor(Color.RED);
    }

    //set text to edit text
    mResultEt.setText(sb.toString());*/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...