Я новичок в программировании 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());*/