首页 > 解决方案 > 错误:如何将详细信息保存到我的 firebase 数据库中

问题描述

我尝试了很多时间来实现将我的 android Firebase 数据库搜索到我的移动应用程序,但它不起作用。我在这里附上了我的源代码。在我的情况下,我必须将我的详细信息保存在 firebase 中,而不是保存在我的 firebase 实时数据库中。请帮我。现在我更新了我的源代码,但仍然是这个错误。

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;

public class AppointmentActivity extends AppCompatActivity {

    private EditText name, pnumber, email, sdate, stime;
    private Button send, cancel;
    private Spinner sspinner, dspinner;


    private static final String TAG="BookingActivity";

    private TextView mDisplayDate;
    private DatePickerDialog.OnDateSetListener mDateSetListener;

    private DatabaseReference mFirebaseDatabase;
    private FirebaseDatabase mFirebaseInstance;
    //time
    TextView chooseTime;
    TimePickerDialog timePickerDialog;
    Calendar calendar;
    int currentHour;
    int currentMinute;
    String amPm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_appointment);

        name = (EditText)findViewById(R.id.name);
        pnumber = (EditText)findViewById(R.id.phoneno);
        email = (EditText)findViewById(R.id.mail);
        sdate = (EditText)findViewById(R.id.s_date);
        stime = (EditText)findViewById(R.id.s_time);
        sspinner = (Spinner)findViewById(R.id.s_spinner);
        dspinner = (Spinner)findViewById(R.id.d_spinner);
        cancel = (Button)findViewById(R.id.cancel);
        send = (Button) findViewById(R.id.send);

        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(AppointmentActivity.this, MainActivity.class);
                startActivity(i);
            }
        });

        //date
        mDisplayDate=(TextView) findViewById(R.id.s_date);

        mDisplayDate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Calendar cal=Calendar.getInstance();
                int year=cal.get(Calendar.YEAR);
                int month=cal.get(Calendar.MONTH);
                int day=cal.get(Calendar.DAY_OF_MONTH);

                DatePickerDialog dialog=new DatePickerDialog(
                        AppointmentActivity.this,
                        android.R.style.Theme_Holo_Light_Dialog_MinWidth,
                        mDateSetListener,
                        year, month, day);
                dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                dialog.show();
            }
        });

        mDateSetListener=new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                month=month + 1;
                Log.d(TAG, "onDateSet: mm/dd/yyy: " + month + "/" + day + "/" + year);

                String date=month + "/" + day + "/" + year;
                mDisplayDate.setText(date);
            }
        };


        //time
        chooseTime=findViewById(R.id.s_time);
        chooseTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                calendar = Calendar.getInstance();
                currentHour = calendar.get(Calendar.HOUR_OF_DAY);
                currentMinute = calendar.get(Calendar.MINUTE);

                timePickerDialog=new TimePickerDialog(AppointmentActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) {
                        if (hourOfDay >= 12) {
                            amPm="PM";
                        } else {
                            amPm="AM";
                        }
                        chooseTime.setText(String.format("%02d:%02d", hourOfDay, minutes) + amPm);
                    }
                }, currentHour, currentMinute, false);

                timePickerDialog.show();
            }
        });

        mFirebaseInstance = FirebaseDatabase.getInstance();
        mFirebaseDatabase = mFirebaseInstance.getInstance().getReference();




        private void saveData() {
            FirebaseUser mAuth = FirebaseAuth.getInstance().getCurrentUser();
            DatabaseReference mUserReference = FirebaseDatabase.getInstance().getReference();
            HashMap<String, String> registerHash = new HashMap<>();
            registerHash.put(mFirebaseDatabase.push(), "Your value");
            registerHash.put(mFirebaseDatabase.push(), "Your value");
            registerHash.put(mFirebaseDatabase.push(), "Your value");
            registerHash.put(mFirebaseDatabase.push(), "Your value");
            registerHash.put(mFirebaseDatabase.push(), "Your value");
            mUserReference.setValue(registerHash).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        Toast.makeText(CompleteProfileActivity.this, "Success", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(CompleteProfileActivity.this, "" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }

    }
}

标签: androidfirebasefirebase-realtime-database

解决方案


这很简单,只需这样做:-

    private void saveData() {
FirebaseUser mAuth = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference mUserReference = FirebaseDatabase.getInstance().getReference();
            HashMap<String, String> registerHash = new HashMap<>();
            registerHash.put(mFirebaseDatabase.push().getKey(), "Your value");
           registerHash.put(mFirebaseDatabase.push().getKey(), "Your value");
           registerHash.put(mFirebaseDatabase.push().getKey(), "Your value");
           registerHash.put(mFirebaseDatabase.push().getKey(), "Your value");
           registerHash.put(mFirebaseDatabase.push().getKey(), "Your value");
            mUserReference.setValue(registerHash).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        Toast.makeText(CompleteProfileActivity.this, "Success", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(CompleteProfileActivity.this, "" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }

推荐阅读