首页 > 解决方案 > Firestore 取消订阅更新

问题描述

我在 YouTube 上关注这个Google Cloud Firestore示例并成功获取实时更新。但是,我不知道如何取消订阅更新,因为视频中没有解释。我阅读了文档以创建一个 unsubscribe() 函数,但它对我不起作用。

	getRealtimeUpdates = function(document) {
		firestore.collection("collection_name")
			.onSnapshot(function(querySnapshot) {
			querySnapshot.forEach(function(doc) {
				if (doc && doc.exists) {
					const myData = doc.data();
					// DO SOMETHING
				}
			});
		});
	}

标签: javascriptgoogle-cloud-firestore

解决方案


firestore.collection().onSnapshot()函数返回一个取消订阅函数。只需调用它,您就应该是 guchi。

您还可以在此处找到另一个示例:How to remove listener for DocumentSnapshot events (Google Cloud FireStore)

这是我创建的应该可以工作的片段:

let unsubscribe;

getRealtimeUpdates = function(document) {
		unsubscribe = firestore.collection("collection_name")
			.onSnapshot(function(querySnapshot) {
			querySnapshot.forEach(function(doc) {
				if (doc && doc.exists) {
					const myData = doc.data();
					// DO SOMETHING
				}
			});
		});
	}
  
  // unsubscribe:
  
  unsubscribe();

相应 Firebase 文档的路径:

https://firebase.google.com/docs/reference/js/firebase.firestore.CollectionReference#onSnapshot

返回 一个取消订阅函数,可以调用它来取消快照侦听器。


推荐阅读