我从Firestore开始.我已经阅读了有关离线数据持久性的文档和教程,但我还不清楚Firestore是否会再次下载数据,即使内容尚未修改.例如,如果我有一个查询,结果将每周更新一次,我不需要应用程序再次下载内容,直到进行更改,编写代码的效率方面的最佳方法是什么?谢谢!
预期行为:我假设当文档的某个字段被修改时,查询只会返回该文档,因此它只会被视为 1 次读取。假设我查询一个包含 n 个文档的集合,我希望它的初始状态为 n 次读取,如果稍后修改文档,则只会从数据库中再次读取该文档,从而总共读取 n+1 次。
我看到的 是最初读取 n 次,每当修改一个文档时 n 次读取,无论是否启用离线持久性;导致 2n 次读取所有“ fromCache : false ”元数据。
myCollection:
doc1 :
value: "some string"
...
docn:
value: "some text"
Run Code Online (Sandbox Code Playgroud)
后来我通过控制台更改了一个文档的值:
myCollection:
doc1 :
value: "changed to other value"
...
docn:
value: "some text"
Run Code Online (Sandbox Code Playgroud)
但是我在查询的快照中再次获得了所有 n 个文档。尽管我可以使用“s.docChanges”观察更改,但快照似乎包含所有 n 个文档。
const someCollectionRef = firebase.firestore().collection("collection/document/subdocl??lection");
someCollectionRef.onSnapshot(s => {
var d = [];
s.forEach(doc => {
d.push(doc.data()));
//fromCache is always false even when one document is …Run Code Online (Sandbox Code Playgroud)