근본적으로, 나는 당신이 자식 "컨텐츠"아래에있는 내 Firebase 데이터베이스에 값이 입력 된 바코드를 스캔 할 때만 알람을 끄도록 허용하는 알람 시계를 생성하고 있습니다. 내가 지금 가지고있는 것은 코드를 스캔하고이 값을 Android 앱의 TextView contentTxt에 표시하는 스캐너입니다.Firebase 데이터베이스의 데이터가 Java의 TextView.toString과 일치하는지 확인하는 방법은 무엇입니까?
"checkButton"을 클릭하면이 TextView를 toString으로 변경 한 다음 데이터베이스를 통해 실행하여 일치하는 값이 있는지 확인해야합니다. 있을 경우 알람을 중지합니다. 표시되지 않으면 "스캔 된 바코드가 아닙니다"라는 알림이 표시됩니다. 그러나 내 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) {
}
});
}
});
이, 또한 내 중포 기지의 스크린 샷입니다 : 여기
내 코드는 실제 오류 코드 또는 충돌에서오고있다
내 코드에서 계속해서 동일한 값이 없다고 계속 말하면 꺼내려는 알람을 얻을 수 없습니다.
필자는 내 코드를 child "barcodes"로 지적하고 그 contentExtToTo와 동일하다면 그 child "content"로 정렬했습니다. 나에게 그것은 그 가치를 격리시키고 그것이 전혀 가치가 있는지를 알아야하는 것처럼 들리므로 아마도 나를 계몽 할 수있을 것입니다. 심지어 dataSnapshot.hasChildren()을 .exists() 등으로 변경하여 실험 해 보았지만 아무 소용이 없습니다.
나는 그것을 시도했지만 불행히도 여전히 else 코드를 실행합니다. textview와 db를 살펴 보더라도 문자열은 완전히 똑같습니다. 그래서 내가 뭘 잘못하고 있는지 정말로 모르겠습니다. –