Я использую GitLive Firebase Kotlin SDK (v2.4.0) в многоплатформенном проекте Kotlin. Мой код отлично работает на Android, но вылетает на iOS при использовании orderByKey() в сочетании с startAt() и endAt().
Сообщение об ошибке
*** Завершение работы приложения из-за неперехваченного исключения «InvalidQueryParameter», причина: «Вы должны использовать queryStartingAtValue: вместо 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
Мобильная версия