gpt4 book ai didi

firebase - 如何减少一次又一次的firebase数据库查询?

转载 作者:行者123 更新时间:2023-12-05 05:01:44 25 4
gpt4 key购买 nike

我目前正在使用 Flutter 开发一个电子商务应用程序,它使用 Firebase 作为后端。我对 Cloud Firestore 有一些担忧和困惑,因此我需要您的帮助。

我面临的一些问题是:

  1. 假设我的收藏中有 1000 种产品,我想在用户运行和滚动应用程序时逐渐加载这些产品,问题是每次用户退出并再次运行应用程序时,都会再次调用数据库我已经提供过相同的数据,最终会花费我更多的阅读次数。

我不知道如何处理这种情况,我也找不到合适的解决方案。

  1. 我想要一种方法来加载一次产品并将其保存在用户的内存中,以便下次用户运行该应用程序时,首先它会尝试从缓存中加载,然后在该查询之后,服务器更多数据并再次将其保存到缓存中。

  2. 我只希望应用程序仅在数据库发生某些变化时监听并更新缓存,例如我更改产品价格或标题时。我不想每次用户运行应用程序时都获取。

  3. 我的简单问题是,在 Flutter 中管理此类情况的有效方法是什么?请帮助我并就此问题提供一些指导。

如果您认为有任何视频或博客文章可以帮助我解决这种情况,请一并提及。

最佳答案

这就是我通常做的。

在数据库中保存一个整型变量,表示数据的版本,例如:

version = 1

每次重新打开应用时,从数据库中读取版本,如果与用户设备本地保存的版本不同,则从在线数据库中重新加载数据。

要将数据保存在 Flutter 本地,您可以使用类似 Hive 的数据库(非常高性能)或 Postgres (好查询,但有点慢)

另外,滚动商品时,如果还没有离线保存,则添加到数据库中。

由于数据量很大,即使更新一个,也会从数据库中重新下载所有数据。如果您不想从数据库中读取所有内容,而不是保存一个整数变量,您可以保存一个包含添加或修改的产品 ID 的数组,并在保存数据时通过清空数组仅查询后者

关于firebase - 如何减少一次又一次的firebase数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62633566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com