I'm trying to make a feature in my hospital app which allows users to book appointment with doctor. So when they book appointments, the details such as date of appointment, patient email, doctor email, etc should get stored in both parent nodes named "Doctor Schedule" and "Patient Appointments". I'm trying to do this using push() in Firebase, but my app keeps crashing. Please help me fix it.
public class Book extends AppCompatActivity {
TextView selectedDate;
Button calenderButton,ok;
FirebaseAuth mAuth;
DatabaseReference docUser, patRef;
ProgressDialog loader;
FirebaseDatabase database= FirebaseDatabase.getInstance();
String Date;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book);
Intent intent = getIntent();
// receive the value by getStringExtra() method
// and key must be same which is send by first
// activity
String docEmail = intent.getStringExtra("message_key1");
String patEmail = intent.getStringExtra("message_key2");
String patname = intent.getStringExtra("message_key2.1");
String docname = intent.getStringExtra("message_key2.2");
String dphone = intent.getStringExtra("message_key2.3");
//Toast.makeText(Book.this, patname, Toast.LENGTH_SHORT).show();
selectedDate=findViewById(R.id.text);
calenderButton=findViewById(R.id.calender);
ok=findViewById(R.id.ok);
loader = new ProgressDialog(this);
mAuth = FirebaseAuth.getInstance();
FirebaseUser user= mAuth.getInstance().getCurrentUser();
//docUser= database.getReference().child("Doctor Schedule");
MaterialDatePicker materialDatePicker=MaterialDatePicker.Builder.datePicker().
setTitleText("Select date").setSelection(MaterialDatePicker.todayInUtcMilliseconds()).build();
calenderButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
materialDatePicker.show(getSupportFragmentManager(),"Tag_Picker");
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
selectedDate.setText(materialDatePicker.getHeaderText());
Date=materialDatePicker.getHeaderText();
}
});
}
});
class Post {
public Post(String Date, String Patient,String Email,String Doctor,String Status) {
// ...
}
}
class Post1 {
public Post1(String Date, String Patient,String Doctor,String Email,String Phone,String Status) {
// ...
}
}
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Date != null) {
docUser = database.getReference().child("Doctor Schedule");
DatabaseReference newdocUser = docUser.push();
newdocUser.setValue(new Post(Date, patname,patEmail,docEmail,"Pending"));
patRef= database.getReference().child("Patient Appointments");
DatabaseReference newpatRef = patRef.push();
newpatRef.setValue(new Post1(Date,patEmail,docname,docEmail,dphone,"Pending"));
}
else {
Toast.makeText(Book.this, "Select date!", Toast.LENGTH_SHORT).show();
}
finish();
}
});
}
}
i think your app crashes when you call finish(). just remove that finish() and check if its getting updated in the database
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.