2017-09-16 74 views
0

如何编写代码以比较Firebase中的数据?在我的Firebase下的医疗是“糖尿病”,当用户想要购买药品时,如何让数据库自动比较用户信息,如果用户患有糖尿病,将不允许用户购买药品?如何比较数据库数据?

https://i.stack.imgur.com/vxe2q.png

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference(); 
    FirebaseAuth auth = FirebaseAuth.getInstance(); 
    FirebaseUser mUser = auth.getCurrentUser(); 
    userID = mUser.getUid(); 

    btnSubmit.setOnClickListener(this); 
    btnCancel.setOnClickListener(this); 
} 

private void submit(){ 
    myRef.child("Users"); 
    myRef.child(userID); 
    myRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      UserInformation user = dataSnapshot.getValue(UserInformation.class); 

      if(user!=null) { 
       if(user.getMedical().equals("Diabetes")) 
        Toast.makeText(getApplicationContext(),"Diabetes",Toast.LENGTH_LONG).show(); 
       else 
        Toast.makeText(getApplicationContext(),"Not Not Diabetes",Toast.LENGTH_LONG).show(); 
       myRef.child("Medicines").child("Pain and Fever").child(userID).setValue("Acetaminophen"); 
       startActivity(new Intent(getApplicationContext(),MainActivity.class)); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
} 

Userinformation

public UserInformation(String name, String address, String phone_num,String gender,String country,String medicine,String medical) { 
    this.address = address; 
    this.name = name; 
    this.phone_num = phone_num; 
    this.gender = gender; 
    this.country = country; 
    this.medicine = medicine; 
    this.medical = medical; 
} 

public String getMedical(){return medical;} 

public void setMedical(String medical){this.medical = medical;} 
+0

你能告诉我你的UserInformation类 – Salman500

+0

告诉我线56和87 – Salman500

+0

你需要确保你的火力点的数据结构,每个用户都在例如你UserInformation类 – Salman500

回答

-2

在Databasehalper类

字符串SQL = “SELECT * FROM TABLENAME WHERE名称= ' ”+ datamodel_app.getFood_name()+“'” ; cursor = mDatabase.rawQuery(sql,null); 如果(cursor.getCount()> 0)

{

//这里做你的代码。

}

否则{

}

+0

老兄他使用firebase不是sqlite – Salman500

0
DatabaseReference mReference = FirebaseDatabase.getInstance().getReference();  
    FirebaseAuth auth = FirebaseAuth.getInstance(); 
    FirebaseUser mUser = auth.getCurrentUser(); 
    // this code will check if user has Diabetes or not 
mReference.child("Users").child(user.getUid()).addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 

     UserClass user = dataSnapshot.getValue(UserClass.class); 

     if(user!=null) 
     { 
      if(user.medical.equals("Diabetes")) 
       Snackbar.make(findViewById(android.R.id.content),"Diabetes",Snackbar.LENGTH_LONG).show(); 
      else 
       Snackbar.make(findViewById(android.R.id.content),"Not Not Diabetes",Snackbar.LENGTH_LONG).show(); 

     } 

    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 

});

+0

如何使用Snackbar? – Bleach

+0

我无法使用Snackbar我编辑过的代码可以帮助我检查吗? – Bleach

+0

将谷歌设计库添加到您的gradle文件中 添加此项,执行'com.android.support:design:26.1.0' – Salman500