Получение обновлений в реальном времени с Cloud Firestore показывает, как подписаться или прослушать изменения документа.
db.collection("cities").doc("SF")
.onSnapshot(function(doc) {
console.log("Current data: ", doc.data());
});
Приведенный выше пример имеет смысл.Мой вопрос касается отсоединения слушателя.Правильно ли говорить, что когда мы хотим отсоединить / отписаться / не прослушать документ, мы просто во второй раз подписываемся на одну и ту же ссылку на базу данных?
... вот как это выглядит, но я не совсем ясно, как и почему?
var unsubscribe = db.collection("cities")
.onSnapshot(function (){
// Respond to data
// ...
});
// Later ...
// Stop listening to changes
unsubscribe();
Это кажется излишне запутанным.... Почему бы просто не иметь 2 метода, .onSnapshot
и .offSnapshot
?Я предположил, что единственное различие, которое я вижу между двумя представленными примерами, заключается в том, что последний присваивается переменной и что метод вызывается для всей коллекции, а не для одного документа.
Итак, нижняя строка: чтобы отписаться, присоедините метод .onSnapshot
к родительской коллекции и назначьте его переменной?