在Android设备中对Firestore进行同步调用

时间:2019-04-03 01:31:26

标签: android firebase google-cloud-firestore android-instrumentation

我正在尝试通过Android设备更新firestore文档。该代码是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 testsfirestore之间进行同步通话?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式阻止线程并等待Firebase任务的结果

Tasks.await(YOUR_TASK)

在您的情况下,代码应为

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

有关更多详细信息,请参见documentation

请记住,Android不允许您阻止主线程,因此如果您使用主线程,则不要这样做。