Сделать синхронный звонок в Firestore на Android устройстве - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь обновить документ firestore через устройство Android. Код является частью instrumented test, поэтому я должен сделать синхронный вызов Firestore для обновления документа.

DocumentReference ref=db.collection("country").document("city")
                        .collection("Delhi").document("LajpatNagar");
Task<Void> temp=ref.update("isPinCodeAdded",true);
        while(!temp.isSuccessful()){    
        }

Выполнение выполняется бесконечно while loop, и задача никогда не будет успешной. Итак, как я могу сделать синхронизирующий вызов в android instrumented tests до firestore?

1 Ответ

1 голос
/ 03 апреля 2019

Вы можете заблокировать поток и ждать результата задачи Firebase с помощью

Tasks.await(YOUR_TASK)

В вашем случае код будет

Task<Void> temp = Tasks.await(ref.update("isPinCodeAdded",true));

Подробнее см. В документации .

Имейте в виду, что Android не позволяет блокировать основной поток, поэтому не делайте этого, если вы находитесь в главном потоке.

...