如何在本地存储Firestore文档?

时间:2018-07-13 04:21:54

标签: google-cloud-firestore flutter

我有一个Firestore文档,该文档很少更改,并且在我的应用程序中的许多不同位置用作查找表。据我了解,当我获取文档时,即使文档中的数据没有更改,它也总是在执行服务器查询。仅当服务器不可用时才使用本地缓存。

由于文档很少更改,所以我想做这样的事情...

1)应用启动时,获取文档并将其存储在本地。

2)设置侦听器,以便在文档更改时更新本地副本。

3)更新本地副本后,将此更改广播到可能正在使用该文档的任何小部件。

这是我希望Firestore默认工作的方式。

这是个好主意吗?关于如何实施此建议?

1 个答案:

答案 0 :(得分:0)

这就是我最终要做的。实际上,这很简单。我将其实现为静态类,并且不确定这是否是最佳方法。但是我喜欢其他所有东西。

我创建了一个类,该类为文档设置了侦听器,还提供了更新文档的流。作为辅助工作,我的班级还将文档解析为Map并对游戏进行排序。

  SELECT  a.cartid
    , a.userid
    , a.productid
    , b.productname
    , b.productcategory
    , b.producttype
    , b.productprice
    , b.productimage1
    FROM  cart
    INNER JOIN  products ON a.productid = b.productid 
    where a.productid= :uid