Я пытаюсь обновить документ 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
?
Вы можете заблокировать поток и дождаться результата задачи Firebase с помощью
Tasks.await(YOUR_TASK)
В вашем случае код будет
Task<Void> temp = Tasks.await(ref.update("isPinCodeAdded",true));
Дополнительные сведения см. в файле документация.
Имейте в виду, что Android не позволит вам заблокировать основной поток, поэтому не делайте этого, если вы находитесь в основном потоке.
Я знаю об асинхронном вызове, поэтому я четко упомянул в вопросе, что мне нужны синхронные вызовы. Я уже управлял потоком, так как он выполняется в инструментальном тестовом потоке.