【问题标题】:Best practice Firebase search and query最佳实践 Firebase 搜索和查询
【发布时间】:2021-03-31 05:16:04
【问题描述】:

当前状态

我有一个 Flutter 应用程序,它在列表视图中向我显示来自 Firebase 的数据列表。

  return new ListView(
      children: snapshot.data.docs.map((DocumentSnapshot documentSnapshot) {
    return _createRows(
      documentSnapshot.data()['id'],
      documentSnapshot.reference.id,
    );
  }).toList());

问题/疑问

但是列表会变得更大,因此加载时间会增加,但更重要的是,读取进程的使用会成倍增加。我也打算加个搜索功能。

Firebase docs:

[...] 下载整个集合以搜索字段 客户端不实用。

是否有可能只从ListView.builder 中查询使用的数据并通过 Firebase 进行搜索?

(显示了一种可能性here。但是,这对于数据存储使用并不太有利) 此外,还有一些第三方网站,但我找不到任何免费的,我不确定在 Flutter 中实施的努力是否值得。例如elastic

很想听听你的建议

【问题讨论】:

  • “是否有可能只从 ListView.builder 中查询使用的数据并通过 Firebase 进行搜索?”就在这里。见firebase.google.com/docs/firestore/query-data/queries
  • @FrankvanPuffelen 感谢您的评论,我会通读一遍,看看如何适应我的情况。
  • @M123 您是否能够使用复合查询调整 ListView.Builder 中数据的搜索?
  • @RafaelLemos 不,我决定另辟蹊径。我的列表相对较小,并在启动应用程序时下载所有数据。然后我在本地使用这些。这在几个方面对我来说更容易。
  • @M123 您能否发布您的解决方案作为答案,以便社区可以参考它以防万一他们有同样的问题?

标签: firebase flutter search google-cloud-firestore


【解决方案1】:

我决定在应用启动时下载所有数据,然后在应用内部传递,因为我下载的数据相对较少,并且在应用中停留时间较长,这是最值得的。

我用插件TypeAhead实现了搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2013-10-02
    相关资源
    最近更新 更多