GitLive Firebase Kotlin SDK: сбой iOS с помощью orderByKey() + startAt()/endAt()IOS

Программируем под IOS
Anonymous
GitLive Firebase Kotlin SDK: сбой iOS с помощью orderByKey() + startAt()/endAt()

Сообщение Anonymous »

Я использую GitLive Firebase Kotlin SDK (v2.4.0) в мультиплатформенном проекте Kotlin. Мой код отлично работает на Android, но вылетает на iOS при использовании orderByKey() в сочетании с startAt() и endAt().
Сообщение об ошибке

Завершение работы приложения из-за необработанного исключения «InvalidQueryParameter», причина: «Вместо этого необходимо использовать queryStartingAtValue: of queryStartingAtValue:childKey: при использовании queryOrderedByKey:'
  • SDK: GitLive Firebase Kotlin SDK v2.4.0
  • Платформа: iOS (отлично работает на Android)
  • База данных Firebase в реальном времени
  • Kotlin: 2.2.21
Анализ первопричин
Эта ошибка предполагает, что реализация iOS неправильно вызывает собственный метод Firebase queryStartingAtValue:childKey: (2 параметра) version) вместо queryStartingAtValue: (версия с 1 параметром), когда используется orderByKey().
Согласно документации Firebase iOS SDK, при использовании queryOrderedByKey следует использовать вариант с одним параметром.
Кто-нибудь сталкивался с такой же проблемой? Каким может быть обходной путь? Я не хочу использовать Cocoapod, так как слышал, что в настоящее время он не используется, и тогда мне придется удалить SPM.
Код, который дает сбой (только для iOS)
val videosSnapshot = database.reference("Videos")
.orderByKey()
.startAt("${courseId}_")
.endAt("${courseId}_\uf8ff")
.valueEvents
.first()

Сложить точки трассировки в
/firebase-kotlin-sdk/firebase-database/src/appleMain/kotlin/dev/gitlive/firebase/database/database.kt


Подробнее здесь: https://stackoverflow.com/questions/798 ... rtat-endat

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