我正在关注firestore here的文档,并尝试在集合上附加快照侦听器以获取实时更新.
我在尝试区分Snapshot事件侦听器的响应是第一次响应(在这种情况下是否将返回集合中的所有文档)或更改事件响应时遇到问题,在这种情况下我想添加检查确定发生了什么变化.
这个
同一文件中的脚注如下:
要点:第一个查询快照包含与查询匹配的所有现有文档的已添加事件.这是因为您获得了一组更改,使您的查询快照与查询的初始状态保持同步
没有提到如何使用后续查询快照识别第一个查询快照.
我可以在SO上找到的相关问题是one,但在我的案例中没有用.
任何帮助都非常感谢,因为我已经没有方向去了.
谢谢.
解决方法:
仔细查看您引用的文档中的代码.它正在检查querySnapshot对象中每个DocumentChange对象的Type:
for (documentChange dc : snapshots.getdocumentChanges()) { switch (dc.getType()) { case ADDED: Log.d(TAG, "New city: " + dc.getdocument().getData()); break; case MODIFIED: Log.d(TAG, "ModifIEd city: " + dc.getdocument().getData()); break; case REMOVED: Log.d(TAG, "Removed city: " + dc.getdocument().getData()); break; }}
这与您引用的文字一致:
The first query snapshot contains added events for all existing documents that match the query.
您可以判断您是否第一次看到文档,因为它是一种ADDED类型的更改. MODIFIED和REMOVED类型更改仅针对您之前为此侦听器看到的文档发出.
总结以上是内存溢出为你收集整理的android – 在firestore中第一次查询快照和更改侦听器之间存在差异全部内容,希望文章能够帮你解决android – 在firestore中第一次查询快照和更改侦听器之间存在差异所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)