【问题标题】:Slow Firestore Queries in Flutter [duplicate]Flutter 中的慢速 Firestore 查询 [重复]
【发布时间】:2021-05-23 10:29:01
【问题描述】:

我有一个非常简单的查询,在我的 android 上运行时非常慢(5 秒或更长时间)。

QuerySnapshot snapshot = await userTeamPointsCollection
        .where('user_ref', isEqualTo: userIdRef)
        .where('season_id', isEqualTo: season)
        .where('match_day', isEqualTo: matchday)
        .get();

该集合包含 10 个文档,所以我不知道为什么查询可能很慢。 我已经创建了一个复合索引,没有太大的改进。

您对我应该尝试什么或为什么这么慢有什么建议吗? (互联网不是问题...)

最好的问候,

【问题讨论】:

  • 如果关闭离线持久性会发生什么? FirebaseFirestore.instance.settings = Settings(persistenceEnabled: false); 离线持久化复杂查询可能会很慢,因为它们没有利用存储在后端的索引。
  • 嗨!这似乎解决了这个问题。但是,我不想完全放弃离线持久性 => 是否可以仅针对 一些 查询将其关闭?
  • 不,Firestore DB 是全局的。
  • 好的,谢谢。太糟糕了。

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

如果您的目标是快速同步(频繁)相对较小的写入操作,请考虑在 Cloud Firestore 上使用 Firebase 的实时数据库。

Firebase 有两个 NoSQL 数据库:Cloud Firestore 和实时数据库。两个数据库都提供实时同步作为它们的核心原语之一,但实时数据库通常更快并且更有效地处理小型写入操作(并且通常更便宜),而如果您有相对较大的文档,则 Firestore 是最好的,大量(50K -1M 并发)侦听器,以及相对较少的写入操作。

更多信息请参考link

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多