Android Firestore在获取数据时显示加载指示器

Android Firestore在获取数据时显示加载指示器,android,android-fragments,google-cloud-firestore,Android,Android Fragments,Google Cloud Firestore,我试图从CloudFireStore数据库中检索用户的数据,并将其显示在片段中。由于Firestore中的查询是异步工作的,因此在从Firestore数据库获取所有数据之前,会加载UI。如果查询速度不够快,我的片段的OnViewCreated方法将加载空数据 避免此问题的最佳做法是什么?我是否应该在处理查询时显示加载指示器?如果是,我如何知道它何时完成 另外,检索myUser类中的数据并在不同片段之间共享同一实例的最佳实践是什么?要解决这个问题,您需要在尝试从Cloud Firestore数据库

我试图从CloudFireStore数据库中检索用户的数据,并将其显示在片段中。由于Firestore中的查询是异步工作的,因此在从Firestore数据库获取所有数据之前,会加载UI。如果查询速度不够快,我的片段的
OnViewCreated
方法将加载空数据

避免此问题的最佳做法是什么?我是否应该在处理查询时显示加载指示器?如果是,我如何知道它何时完成


另外,检索my
User
类中的数据并在不同片段之间共享同一实例的最佳实践是什么?

要解决这个问题,您需要在尝试从Cloud Firestore数据库获取文档时使用
addOnCompleteListener
。这意味着将触发
onComplete()
方法,因为它具有异步行为,所以必须调用另一个方法或直接显示该方法中的UI元素,否则它将始终为
null

还有另一种方法,添加回调以便能够在该方法之外访问它。为此,我重新开始并深入异步世界,并从中看到我的答案。这是为了在
onDataChange()
方法之外获取数据,但基本相同


为了获得最佳的用户体验,您可以添加加载指示器,这样用户就看不到空白屏幕。

谢谢您的回答。为什么
addOnCompleteListener
而不是
addOnSuccessListener
?另外,如果您可以对我的最后一个问题进行评论,那将非常好。因为任务完成时会调用
addOnCompleteListener
,此时您需要显示UI元素。与处理活动的方式相同,您也需要处理片段。