2017-02-22 140 views
1

本质上,我创建的闹钟仅允许您在扫描条码的数值已输入我的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) { 

        } 
       }); 
      } 
     }); 

这里是我的火力地堡的截图还,如果这能帮助:

Screenshot showing my database's hierarchy and children

没有实际的错误代码或崩溃即将在我的代码,它只是不断说有没有相同的值,然后我不能让该死的警报关闭。

正如我的理解,我曾指出我的代码给孩子“条形码”,并通过其子“内容”命令,只要它是equalTo我contentTxt.toString。对我来说,这听起来像是应该隔离那个价值,看看它是否有价值,所以也许你可以启发我。我甚至尝试将dataSnapshot.hasChildren()更改为.exists()等,但无济于事。

回答

1

只是为了评论我解决了这个问题。我应该使用contentTxt.getText().toString()而不是contentTxt.toString()。愚蠢的错误,感谢您的帮助。

0

相反的dataSnapshot.hasChildren(),尝试dataSnapshot.exists()

+0

我尝试过,但不幸的是它仍然运行其他代码。即使看看textview和db,字符串也完全一样,所以我真的不知道我在做什么错了。 –

相关问题