Как получить последовательность последовательных привычек, которые верны с помощью FirebaseAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как получить последовательность последовательных привычек, которые верны с помощью Firebase

Сообщение Anonymous »


Я создаю приложение для отслеживания привычек с помощью Firebase. Я хочу составить последовательность последних завершенных привычек в нисходящей последовательности. Если привычка ложная, она перестает учитываться

{ "привычки": { "-nx...": { "ежедневные занятия": { "-Нм...": { "дата": "26.12.2023", "готово": правда }, "-Нм...": { "дата": "25.12.2023", «готово»: правда, }, "-Нм...": { "дата": "28.12.2023", «готово»: правда, }, "-Нм...": { "дата": "24.12.2023", «готово»: правда, } } } } } Получите только 1 серию, поскольку 28 — это текущая серия и не имеет следующей последовательности.

Проблема в том, что если вы установите флажок, чтобы сохранить в Firebase, только dailyActivity сохраняется, например, день 27 не сохраняется, потому что еще не сохранен

Класс модели

класс данных Привычка ( идентификатор переменной: String?, имя переменной: String, описание переменной: Строка, вар userId: String, вар напоминание: Напоминание, var dateEnd: String?, вар iconColor: String, вар rangeOption: RangeOption, вар цель: GoalType, переменная продолжительность: DurationTimer, действия var: List ) класс DailyActivity { вар дата: Строка? "=" var Done: Логическое значение? = ложь переменная продолжительность: DurationTimer = DurationTimer() } класс DurationTimer { вар час: Int? = ноль вар минута: Int? = ноль вар второй: Int? = ноль } класс перечисления RangeOption { Выкл., Да } класс HabitViewModel : ViewModel() { частная вал привычкаDatabase: DatabaseReference от lazy { FirebaseDatabase.getInstance().getReference("привычки") } частный вал dailyActivityDatabase: DatabaseReference от lazy { FirebaseDatabase.getInstance().getReference("dailyActivities") } частное развлечение getAllDailyActivitiesByHabitId(habitId: String) { привычкаDatabase.child(habitId).child("ежедневныеактивности") } Private val _habitsLiveData = MutableLiveData() val привычкиLiveData: LiveData = _habitsLiveData приостановить веселье getReverseDailyActiviesByHabitId(habitId: String): List { val dailyActivityRef = привычкаDatabase.child(habitId).child("ежедневныеактивности").orderByChild("дата") val dataSnapshot = dailyActivityRef.get().await() val dailyActivities = mutableListOf() dataSnapshot.children.forEach {данные -> val date = data.child("date").getValue(String::class.java) val Done = data.child("done").getValue(Boolean::class.java) if (дата!= ноль && выполнено!= ноль) { val dailyActivity = DailyActivity() dailyActivity.date = дата dailyActivity.done = готово dailyActivities.add(ежедневнаяактивность) } } вернуть dailyActivities.reversed() } } класс HabitDetailsActivity: AppCompatActivity() {

частная привязка lateinit var: FragmentCommonDetailBinding частный lateinit var привычкаViewModel: HabitViewModel частный var dailyActivities = listOf() переопределить fun onCreate(savedInstanceState: Bundle?) { dailyActivities = привычкаViewModel.getReverseDailyActiviesByHabitId(id!!) //получим все ежедневные активности по убыванию привязка.textViewStrikeValue.text = // полоса привязки Как узнать последовательность и остановиться, если в ней нет следующей и она неверна? Я не знаю, нужно ли мне создавать функцию, чтобы попытаться проверить, есть ли в dailyactivy последовательность, или создать с ее помощью множество привычек

Конечный результат:
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»