我可以指定源,如果我想从firestore中获取数据,默认情况下,是从服务器或从缓存中获取数据,如下所示:
query.get(Source.CACHE)
说如果使用上面的代码,我通常会得到50个文档。现在,我想从缓存中的该查询中删除一个特定的文档,所以我只想获得49个文档。
该怎么做?有可能吗?
答案 0 :(得分:1)
您无法直接控制由Firebase SDK维护的内部缓存的状态。您不能删除特定项目或使它们无效。
缓存完全由SDK管理。该SDK根据文件是否与服务器同步来确定何时添加或删除文件。
您可以使用SDK删除文档,这会将其从缓存结果中删除。但是该删除操作最终将与服务器同步,这是一个永久性的更改。
如果您有步骤表明内部缓存存在某种错误或与服务器的内容不一致,那么现在显示的file a bug report with Firebase support可以重现该问题。
答案 1 :(得分:1)
我想从缓存中的该查询中删除一个特定的文档,所以我只想获取49个文档。
您无法在delete()
操作中指定它。如果您想要得到这种行为,则您的设备应处于离线状态。这样,Firestore将从本地缓存中删除记录。但是请注意,一旦恢复连接,您的记录也将从Firebase服务器中删除。联机时,无法从缓存中而不是从Firebase服务器中删除文档。