Сделать синхронный вызов firestore на Android-устройстве

Я пытаюсь обновить документ 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?

0
0
235
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Tasks.await(YOUR_TASK)

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

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

Дополнительные сведения см. в файле документация.

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

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

Sushant Somani 03.04.2019 04:23

Другие вопросы по теме