【问题标题】:Firestore show loading indicator while fetching dataFirestore 在获取数据时显示加载指示器
【发布时间】:2018-05-27 17:41:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: android android-fragments google-cloud-firestore


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。为什么addOnCompleteListener 而不是addOnSuccessListener?另外,如果您可以对我的最后一个问题发表评论,那就太好了。
    • 因为addOnCompleteListener在Task完成时被调用,此时你需要显示UI元素。就像处理活动一样,你需要处理片段。
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2020-01-23
    • 2021-10-09
    • 2020-06-10
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多