Как сохранить несколько дат в базе данных Firebase, чтобы администратор мог отслеживать заказы на определенную дату - PullRequest
0 голосов
/ 26 октября 2018
final Date today = new Date();
Calendar nextYear = Calendar.getInstance();
nextYear.add(Calendar.YEAR, 1);

CalendarPickerView datePicker = findViewById(R.id.calendarPickerView);
datePicker.init(today, nextYear.getTime()).withSelectedDate(today);

datePicker.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() {

    @Override
    public void onDateSelected(Date date) {
        Calendar calselected = Calendar.getInstance();
        calselected.setTime(date);

        final String selectedDate = "" + 
        calselected.get(Calendar.DAY_OF_MONTH) + "/" + 
        (calselected.get(Calendar.MONTH) + 1) + "/" + 
        calselected.get(Calendar.YEAR);

        String user_uid = mAuth.getCurrentUser().getUid();
        final DatabaseReference current_user_db = mDatabase.child(user_uid);

        alterupdate.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 current_user_db.child("Altered date").setValue(selectedDate);
                 startActivity(new Intent(first_activity.this, second_activity.class));
             }
        });
    }
});

Я создал средство выбора календаря и сохранил вывод в поле «Измененная дата».Но когда пользователь выбирает другую дату, он переопределяет текущую дату.Итак, как лучше всего сохранить все измененные даты?

1 Ответ

0 голосов
/ 26 октября 2018

Но когда пользователь выбирает другую дату, он переопределяет текущую дату.

Это происходит потому, что вы вызываете метод set() по той же ссылке.Поскольку каждый узел в базе данных Firebase является Map, а в случае Map он заменяет старое значение новым.

Итак, что является лучшим вариантом для сохранения всехизмененные даты?

Чтобы решить эту проблему, я рекомендую использовать метод push().Для этого измените следующую строку кода:

current_user_db.child("Altered date").setValue(selectedDate);

на

current_user_db.child("Altered date").push().setValue(selectedDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...