为什么Firebase即使输入为空也返回true

基本上,程序应基于输入检查Firebase数据库中数据的存在并相应显示弹出窗口,但是如果我将输入留空,则通过提示“请求”弹出窗口仍会以某种方式认为该数据确实存在窗外。


@Override

public void onClick(View v) {


  final String input = mInput.getText().toString();


  DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

  DatabaseReference idRef = rootRef.child("Patient");

  idRef.addListenerForSingleValueEvent(new ValueEventListener() {


  @Override

  public void onDataChange(DataSnapshot dataSnapshot) {


      if (dataSnapshot.child(input).getValue() != null) {

          startActivity(new Intent(addNew.this, Request.class));

      } else{

          startActivity(new Intent(addNew.this, Fail.class));

      }

  }


      @Override

      public void onCancelled(DatabaseError databaseError) {}

   });

}

我想知道如何解决这个问题,以便将空输入视为不存在的数据,感谢您的帮助


qq_花开花谢_0
浏览 135回答 2
2回答

偶然的你

要解决此问题,只需input在创建“请求弹出窗口”之前验证字符串的长度即可。if(input.length() != 0) {    //"Request pop-out window"}

叮当猫咪

您正在检查值是否正确,!= null但值是否为null时,firebase不会创建该子节点或将其删除。您可以改为检查dataSnapshot.hasChild("input")。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java