Tho*_*hoe 13 firebase google-cloud-firestore
该文件说:
您可以使用 onSnapshot() 方法收听文档。使用您提供的回调的初始调用会立即使用单个文档的当前内容创建文档快照。然后,每次内容更改时,另一个调用都会更新文档快照。
我只希望我的听众在数据更改时触发。我不希望它在应用程序加载时触发,以获取数据的初始状态。有什么建议?
Firestore 侦听器不是这样工作的。您将始终收到与获取或查询相关的文档,然后只要侦听器保持添加状态就会更新。没有仅接收增量的模式。
如果您只想接收某些数据,您可能想弄清楚如何查询它,例如,通过添加时间戳字段并让客户端只查询自之前某个时间以来已更改的文档。
小智 5
在阅读了第一个和第二个解决方案后,我做出了一个似乎有效的解决方案。首先初始化一个变量true并在onSnapshot()方法内部检查这个变量是否为true,如果是,则将其更改为false,然后编写检索数据算法。像这样的东西:
var initState = true;
let observer = records.onSnapshot(docSnapshot => {
console.log(`Received doc snapshot`);
if (initState) {
initState = false;
} else {
if (!docSnapshot.docChanges().empty) {
docSnapshot.docChanges().forEach(function (change) {
//Write here wahtever you want
});
}
}
}, err => {
console.log(`Encountered error: ${err}`);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5919 次 |
| 最近记录: |