【问题标题】:Snapsot to Listview on FlutterFlutter 上的 Listview 快照
【发布时间】:2020-08-17 01:59:12
【问题描述】:

在我的 Firestore 数据库中,我有 1000 个文档。用户检索 1 个文档后,我想在另一个页面中将其显示为列表页面中的卡片。

用户再次登录应用时,应该会在列表中看到以前检索到的文档。

如果用户已经从数据库中检索到数据,我也不想显示来自 firestore 的相同文档。

我想通过按下按钮从firestore数据库中一一检索文档并将其显示在listTile中。

每次按下按钮,应用都会将新快照添加到列表中。我怎么能管理它?

【问题讨论】:

    标签: flutter google-cloud-firestore snapshot


    【解决方案1】:

    您可以使用Hive 作为本地 NoSQL 数据库来存储用户检索到的所有文档。

    您可以使用的另一种方法是使用 Hive 存储文档的 ID,当用户登录您的应用程序时,您可以从缓存中获取文档:

    Firestore.instance.collection('collection').document(id).get(source: Source.cache);
    

    【讨论】:

    • 谢谢。是否可以免费使用 Hive?
    • 是的,Hive 是一个开源的 dart 包
    • 好的,我会尽力给你反馈?
    • 我不想让用户从 firebase 检索相同的数据。我的意思是,如果我在数据库中有 10 个文档,并且如果用户检索了 1 个文档,应用程序将从剩余的 9 个文档中随机检索文档。在一个简短的应用程序中,不会再次收到同一用户的相同文档。我该怎么做?
    • 根据您的说法,我了解到您希望在文档查询中获得订单。例如,您可以使用order() 查询按创建日期对文档进行排序,您可以使用limit() 查询获取一份文档。您可以存储此文档,并在下一个查询中添加startAfterDocument() 查询以从上一个文档中获取下一个文档。您可以查看 Firestore 查询文档以获取更多信息firebase.google.com/docs/firestore/query-data/queries
    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 2020-04-12
    • 2020-07-20
    • 1970-01-01
    • 2021-07-07
    • 2019-03-22
    • 2020-03-19
    • 2020-05-28
    相关资源
    最近更新 更多