Мое приложение падает на двух моих клиентских устройствах (оба Samsung).Раньше он работал нормально до моего последнего обновления.
Я подозреваю, что это не связано с каким-либо моим кодом, а скорее с этой проблемой: Примечание: «Облачное хранилище файлов переопределяет устаревший API»
Журналы сбоев (как для Android, так и для iOS) упоминают Firestore и FieldPath (не могу точно понять, что) ...
Журнал сбоев (из консоли разработчика Google Play)):
java.lang.RuntimeException: at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$5(com.google.firebase:firebase-firestore@@19.0.0:379)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$5.run (Unknown Source:2)
at android.os.Handler.handleCallback (Handler.java:794)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:176)
at android.app.ActivityThread.main (ActivityThread.java:6651)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:824)
Caused by: java.lang.RuntimeException:
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run (Unknown Source:4)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at com.google.firebase.firestore.util.AsyncQueue$DelayedStartFactory.run
at java.lang.Thread.run (Thread.java:764)
Caused by: java.lang.IllegalArgumentException:
at com.google.firebase.firestore.model.FieldPath.fromServerFormat
at com.google.firebase.firestore.remote.RemoteSerializer.decodeDocumentMask
at com.google.firebase.firestore.remote.RemoteSerializer.decodeMutation
at com.google.firebase.firestore.local.LocalSerializer.decodeMutationBatch
at com.google.firebase.firestore.local.SQLiteMutationQueue.decodeInlineMutationBatch
at com.google.firebase.firestore.local.SQLiteMutationQueue.lambda$getNextMutationBatchAfterBatchId$4
at com.google.firebase.firestore.local.SQLiteMutationQueue$$Lambda$5.apply (Unknown Source:4)
at com.google.firebase.firestore.local.SQLitePersistence$Query.firstValue
at com.google.firebase.firestore.local.SQLiteMutationQueue.getNextMutationBatchAfterBatchId
at com.google.firebase.firestore.local.LocalStore.getNextMutationBatch
at com.google.firebase.firestore.remote.RemoteStore.fillWritePipeline
at com.google.firebase.firestore.remote.RemoteStore.enableNetwork
at com.google.firebase.firestore.remote.RemoteStore.start
at com.google.firebase.firestore.core.FirestoreClient.initialize
at com.google.firebase.firestore.core.FirestoreClient.lambda$new$2
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$2.run (Unknown Source:8)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$4
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$4.call (Unknown Source:2)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3
ОБНОВЛЕНИЕ: теперь у меня есть журнал сбоев с iOS (Xcode):
Last Exception Backtrace:
0 CoreFoundation 0x184956fe0 __exceptionPreprocess + 124 (NSException.m:165)
1 libobjc.A.dylib 0x1833b8538 objc_exception_throw + 56 (objc-exception.mm:521)
2 CoreFoundation 0x184956eb4 +[NSException raise:format:arguments:] + 104 (NSException.m:131)
3 Foundation 0x1853ef7cc -[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:] + 88 (NSException.m:165)
4 Runner 0x100197bec firebase::firestore::util::internal::Fail(char const*, char const*, int, std::__1::basic_string<c... + 260 (hard_assert_apple.mm:34)
5 Runner 0x100197d04 firebase::firestore::util::internal::Fail(char const*, char const*, int, std::__1::basic_string<c... + 196 (hard_assert_apple.mm:54)
6 Runner 0x10011a2cc firebase::firestore::model::FieldPath::FromServerFormat(absl::string_view) + 696 (field_path.cc:87)
7 Runner 0x1001741c4 -[FSTSerializerBeta decodedFieldMask:] + 232 (FSTSerializerBeta.mm:582)
8 Runner 0x100173568 -[FSTSerializerBeta decodedMutation:] + 600 (FSTSerializerBeta.mm:514)
9 Runner 0x100151554 -[FSTLocalSerializer decodedMutationBatch:] + 528 (FSTLocalSerializer.mm:208)
10 Runner 0x10019e0b4 firebase::firestore::local::LevelDbMutationQueue::ParseMutationBatch(absl::string_view) + 160 (leveldb_mutation_queue.mm:474)
11 Runner 0x10019f1a4 firebase::firestore::local::LevelDbMutationQueue::NextMutationBatchAfterBatchId(int) + 448 (leveldb_mutation_queue.mm:374)
12 Runner 0x100154ca4 -[FSTLocalStore nextMutationBatchAfterBatchID:] + 176 (FSTLocalStore.mm:423)
13 Runner 0x1001be618 firebase::firestore::remote::RemoteStore::FillWritePipeline() + 124 (remote_store.mm:362)
14 Runner 0x100140d4c -[FSTFirestoreClient initializeWithUser:settings:] + 1332 (FSTFirestoreClient.mm:257)
15 Runner 0x100143130 std::__1::__function::__func<-[FSTFirestoreClient initWithDatabaseInfo:settings:credentialsProvid... + 112 (FSTFirestoreClient.mm:193)
16 Runner 0x10010b79c firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) + 64 (functional:1913)
17 Runner 0x10011876c firebase::firestore::util::internal::DispatchAsync(NSObject<OS_dispatch_queue>*, std::__1::functi... + 36 (functional:1913)
18 libdispatch.dylib 0x18380e9a0 _dispatch_client_callout + 16 (object.m:473)
19 libdispatch.dylib 0x18381cad4 _dispatch_queue_serial_drain + 928 (inline_internal.h:2431)
20 libdispatch.dylib 0x1838122cc _dispatch_queue_invoke + 884 (queue.c:4853)
21 libdispatch.dylib 0x18381cfa8 _dispatch_queue_override_invoke + 344 (queue.c:4890)
22 libdispatch.dylib 0x18381ea50 _dispatch_root_queue_drain + 540 (inline_internal.h:2468)
23 libdispatch.dylib 0x18381e7d0 _dispatch_worker_thread3 + 124 (queue.c:5550)
24 libsystem_pthread.dylib 0x183a17100 _pthread_wqthread + 1096 (pthread.c:2196)
25 libsystem_pthread.dylib 0x183a16cac start_wqthread + 4