Android 计算子项中的值数以检查重复数据
我想计算此子日期\u时间\u医生\u活动的值,如果计数大于0,则toast无法插入,如果计数为0,则执行插入数据或toast消息的方法 我尝试过很多解决方案,但都没有一个是对的 这是我的json代码Android 计算子项中的值数以检查重复数据,android,json,firebase,android-studio,firebase-realtime-database,Android,Json,Firebase,Android Studio,Firebase Realtime Database,我想计算此子日期\u时间\u医生\u活动的值,如果计数大于0,则toast无法插入,如果计数为0,则执行插入数据或toast消息的方法 我尝试过很多解决方案,但都没有一个是对的 这是我的json代码 "appointment" : { "-MHp2gC9Wwk_NlbpdJRY" : { "active_appointment" : "true", "active_appointment_pat
"appointment" : {
"-MHp2gC9Wwk_NlbpdJRY" : {
"active_appointment" : "true",
"active_appointment_patient_email" : "true_hanamoha075@gmail.com",
"date_appointment" : "23/Aug/2020",
"date_time_doctor_active" : "23/Aug/2020_10:15 AM_باسل الخالدي_true",
"doctor_number" : "باسل الخالدي",
"id_appointment" : "-MHp2gC9Wwk_NlbpdJRY",
"patient_email" : "hanamoha075@gmail.com",
"time_appointment" : "10:15 AM"
},
"-MHp2nWxB4jwx9K5NQGj" : {
"active_appointment" : "true",
"active_appointment_patient_email" : "true_hanamoha075@gmail.com",
"date_appointment" : "23/Aug/2020",
"date_time_doctor_active" : "23/Aug/2020_10:15 AM_باسل الخالدي_true",
"doctor_number" : "باسل الخالدي",
"id_appointment" : "-MHp2nWxB4jwx9K5NQGj",
"patient_email" : "hanamoha075@gmail.com",
"time_appointment" : "10:15 AM"
},
"-MHp2rOv3xiY_ylkIdyf" : {
"active_appointment" : "true",
"active_appointment_patient_email" : "true_hanamoha075@gmail.com",
"date_appointment" : "23/Aug/2020",
"date_time_doctor_active" : "23/Aug/2020_10:15 AM_باسل الخالدي_true",
"doctor_number" : "باسل الخالدي",
"id_appointment" : "-MHp2rOv3xiY_ylkIdyf",
"patient_email" : "hanamoha075@gmail.com",
"time_appointment" : "10:15 AM"
}
这是我的按钮点击监听器中的java代码
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String patienttDate = txt_date.getText().toString().trim();
final String patienttTime = txt_time.getText().toString().trim();
final String patienttDoctor = choose_doctor.getSelectedItem().toString().trim();
final String patienttActive = "true";
appointment_DataBase.child("appointment")
.orderByChild("date_time_doctor_active")
.equalTo(patienttDate + "_" + patienttTime + "_" + patienttDoctor + "_" + patienttActive)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
Appointment appointment = dataSnapshot.getValue(Appointment.class);
appointment.getDate_time_doctor_active();
size = size + 1;
}
} else {
if (size > 0) {
Toast.makeText(booking.this, "cant inserrrrt", Toast.LENGTH_SHORT).show();
Toast.makeText(booking.this, "size is " + size, Toast.LENGTH_SHORT).show();
} else {
addAppointment();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
我已经弄明白了。。我对代码做了一些更改,这就是结果
Query query = FirebaseDatabase.getInstance().getReference("appointment")
.orderByChild("date_time_doctor_active")
.equalTo(patienttDate+"_"+patienttTime+"_"+patienttDoctor+"_"+patienttActive);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
size = 0;
for (DataSnapshot dataSnapshot : snapshot.getChildren()){
Appointment appointment = dataSnapshot.getValue(Appointment.class);
appointment.getDate_time_doctor_active();
if (dataSnapshot.exists()){
size = size +1;
}
}
if (size > 0){
Toast.makeText(booking.this, "this appointment is not available" , Toast.LENGTH_LONG).show();
}else {
addAppointment();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
什么是
预约\u数据库
?我的数据库reference@Omid.n我想计算这个孩子日期\u时间\u医生\u活动的数值是什么意思date\u time\u doctor\u active
不是一个数字,因此可以计算。感谢您的重播。。我只是想办法。。date\u time\u doctor\u active是子名称,需要查询4个字段才能检查预约是否存在