Firestore: сбой транзакций в автономном режиме - PullRequest
0 голосов
/ 20 июня 2020

Я знаю, что согласно журналу изменений (0.12.9 + 5). Предположительно он исправил ошибку sh на android, когда попытка Transaction в автономном режиме приводила к ошибке sh приложения. Однако даже с 0.13.7 (той версией, которую я использую). У меня все еще возникают сбои приложений. В консоли нет журнала ошибок (просто немедленно cra sh).

Я пробовал:

  1. Запуск моего приложения в режиме отладки на физическом устройстве (такое же поведение )
  2. Присоединение обратного вызова обработчика ошибок (не вызывается)
  3. Понижение моей версии cloud_firestore до 0.12.11 (самая низкая версия, поддерживающая whereIn в запросах; это то, что мне нужно, и выше 0.12.9 + 5)

Другая, возможно, важная информация:

  1. Logcat (Я включил вещи, которые я могу удаленно предположить как актуальные; я не умеют читать logcat)
 java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:354)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.AssertionError: INTERNAL ASSERTION FAILED: A transaction object cannot be used after its update callback has been invoked.
        at com.google.firebase.firestore.util.Assert.fail(com.google.firebase:firebase-firestore@@21.3.0:46)
        at com.google.firebase.firestore.util.Assert.hardAssert(com.google.firebase:firebase-firestore@@21.3.0:31)
        at com.google.firebase.firestore.core.Transaction.ensureCommitNotCalled(com.google.firebase:firebase-firestore@@21.3.0:246)
        at com.google.firebase.firestore.core.Transaction.lookup(com.google.firebase:firebase-firestore@@21.3.0:81)
        at com.google.firebase.firestore.Transaction.getAsync(com.google.firebase:firebase-firestore@@21.3.0:191)
        at com.google.firebase.firestore.Transaction.get(com.google.firebase:firebase-firestore@@21.3.0:228)
        at io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:569)
        at io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:564)
        at android.os.AsyncTask$2.call(AsyncTask.java:333)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 
2020-06-20 15:20:03.272 10188-10241/com.vnf.lightweight_pos E/CloudFirestorePlugin: java.lang.Exception: DoTransaction failed: UNAVAILABLE: Unable to resolve host firestore.googleapis.com

     Caused by: java.lang.AssertionError: INTERNAL ASSERTION FAILED: A transaction object cannot be used after its update callback has been invoked.

Channel is unrecoverably broken and will be disposed!
firebase_auth: 0,16,1

1 Ответ

0 голосов
/ 22 июня 2020

Я обнаружил проблему GitHub , которая описывает вашу точно такую ​​же проблему. Для этого есть незавершенное исправление.

Между тем, согласно этому комментарию , лучший подход, по-видимому, заключается в понижении до версии 0.12.10 + 2.

...