Android: [Firebase] Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него - PullRequest
0 голосов
/ 21 сентября 2019

Я получил ошибку, связанную с CursorWindow, как зарегистрировано ниже.Как вы видите журнал, IllegalStateException вызывается Firebase SDK.Итак, я обновил последнюю версию SDK (com.google.firebase: firebase-firestore: 21.1.1), но это все же произошло.Я не знаю точно, когда это произошло, потому что я просто проверяю проблему с консоли Firebase.Итак, я выясняю, какой вариант использования вызывает исключение ниже.

Один из выводов состоит в том, что это произошло, так как я реорганизовал весь код в библиотеку AndroidX с помощью AndroidStudio.

Если выУ меня такой же опыт, как и у меня, и вы решили эту проблему, пожалуйста, помогите мне.

Заранее спасибо.

Caused by java.lang.IllegalStateException: Couldn't read row 7934, col 0 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
       at android.database.CursorWindow.nativeGetString(CursorWindow.java)
       at android.database.CursorWindow.getString + 438(CursorWindow.java:438)
       at android.database.AbstractWindowedCursor.getString + 51(AbstractWindowedCursor.java:51)
       at com.google.firebase.firestore.local.SQLiteLruReferenceDelegate.lambda$removeOrphanedDocuments$2 + 157(com.google.firebase:firebase-firestore@@21.1.1:157)
       at com.google.firebase.firestore.local.SQLiteLruReferenceDelegate$$Lambda$3.accept + 6(:6)
       at com.google.firebase.firestore.local.SQLitePersistence$Query.forEach + 485(com.google.firebase:firebase-firestore@@21.1.1:485)
       at com.google.firebase.firestore.local.SQLiteLruReferenceDelegate.removeOrphanedDocuments + 155(com.google.firebase:firebase-firestore@@21.1.1:155)
       at com.google.firebase.firestore.local.LruGarbageCollector.removeOrphanedDocuments + 226(com.google.firebase:firebase-firestore@@21.1.1:226)
       at com.google.firebase.firestore.local.LruGarbageCollector.runGarbageCollection + 270(com.google.firebase:firebase-firestore@@21.1.1:270)
       at com.google.firebase.firestore.local.LruGarbageCollector.collect + 245(com.google.firebase:firebase-firestore@@21.1.1:245)
       at com.google.firebase.firestore.local.LocalStore.lambda$collectGarbage$9 + 670(com.google.firebase:firebase-firestore@@21.1.1:670)
       at com.google.firebase.firestore.local.LocalStore$$Lambda$10.get + 4(:4)
       at com.google.firebase.firestore.local.SQLitePersistence.runTransaction + 229(com.google.firebase:firebase-firestore@@21.1.1:229)
       at com.google.firebase.firestore.local.LocalStore.collectGarbage + 670(com.google.firebase:firebase-firestore@@21.1.1:670)
       at com.google.firebase.firestore.local.LruGarbageCollector$Scheduler.lambda$scheduleGC$0 + 144(com.google.firebase:firebase-firestore@@21.1.1:144)
       at com.google.firebase.firestore.local.LruGarbageCollector$Scheduler$$Lambda$1.run + 2(:2)
       at com.google.firebase.firestore.util.AsyncQueue$DelayedTask.handleDelayElapsed + 134(com.google.firebase:firebase-firestore@@21.1.1:134)
       at com.google.firebase.firestore.util.AsyncQueue$DelayedTask.access$lambda$0()
       at com.google.firebase.firestore.util.AsyncQueue$DelayedTask$$Lambda$1.run + 2(:2)
       at java.util.concurrent.Executors$RunnableAdapter.call + 457(Executors.java:457)
       at java.util.concurrent.FutureTask.run + 266(FutureTask.java:266)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run + 301(ScheduledThreadPoolExecutor.java:301)
       at java.util.concurrent.ThreadPoolExecutor.runWorker + 1162(ThreadPoolExecutor.java:1162)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run + 636(ThreadPoolExecutor.java:636)
       at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run + 224(com.google.firebase:firebase-firestore@@21.1.1:224)
       at java.lang.Thread.run + 764(Thread.java:764)

1 Ответ

0 голосов
/ 21 сентября 2019

Если вы используете курсор, убедитесь, что для получения столбцов или данных ваш метод должен быть cursor.moveToFirst () и да, убедитесь, что курсор также должен быть инициализирован или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...