По существу, я создаю будильник, который позволяет отключить будильник, если вы сканируете штрих-код, значение которого было введено в мою базу данных Firebase под дочерним «контентом». На данный момент у меня есть сканер, который сканирует код и отображает это значение в TextView contentTxt в приложении для Android.Как проверить, соответствуют ли данные в моей базе данных Firebase моей TextView.toString в Java?
Когда я нажимаю кнопку «checkButton», предполагается, что этот TextView изменит его наString, а затем запустит через базу данных, чтобы проверить, есть ли какое-либо значение, которое соответствует ему. Если есть, он остановит будильник. Если этого не произойдет, он отобразит уведомление о том, что «это не сканированный штрих-код». Однако, хотя значения в моей firebase такие же, как в моем TextView, он только когда-либо говорит, что это не сканированный штрих-код.
Вот мой код:
final Button checkButton = (Button) findViewById(R.id.checkBtn);
checkButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mDatabase.child("users").child(mUserId).child("barcodes").orderByChild("content")
.equalTo(contentTxt.toString()).addListenerForSingleValueEvent(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChildren()){
// method that alters update text TextBox
set_alarm_text("Alarm off!");
// cancel the alarm
alarm_manager.cancel(pending_intent);
// put in extra string into my_intent, telling the clock that "Alarm Off" was pressed
my_intent.putExtra("extra", "alarm off");
// stop the ringtone
sendBroadcast(my_intent);
}
else{
Toast toast = Toast.makeText(getApplicationContext(),
"This is not a scanned barcode!", Toast.LENGTH_SHORT);
toast.show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
Вот скриншот моего Firebase также, если это помогает:
Существует никаких фактических кодов ошибок или сбоев не приходят в мой кода, он просто постоянно говорит, что нет одинаковых значений, и тогда я не могу заставить проклятый будильник выключиться.
Как я понимаю, я указал свой код на «штрих-коды» ребенка и упорядочил его дочерним «контентом», при условии, что он равен моему контенту contentTxt.toString. Для меня это звучит так, будто это должно изолировать эту ценность и посмотреть, имеет ли она какую-либо ценность, поэтому, возможно, вы можете просветить меня. Я даже пытался экспериментировать с изменением dataSnapshot.hasChildren() на .exists() и т. Д., Но безрезультатно.
Я тоже пробовал, но, к сожалению, он все еще запускает код else. Даже глядя на текстовое представление, а затем на db, строки точно такие же, поэтому я действительно не знаю, что я делаю неправильно. –