繁体   English   中英

在 Android Studio 中使用 push() 在 Firebase 实时数据库中添加数据

[英]Adding data in Firebase realtime database using push() in Android Studio

我正在尝试在我的医院应用程序中创建一个功能,允许用户预约医生。 因此,当他们预约时,预约日期、患者 email、医生 email 等详细信息应存储在名为“医生计划”和“患者预约”的父节点中。 我正在尝试使用 Firebase 中的 push() 来执行此操作,但我的应用程序不断崩溃。 请帮我修复它。

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();

            }
        });
    }
}

我认为当你调用finish()时你的应用程序崩溃了。 只需删除该finish()并检查它是否在数据库中更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM