У меня есть эта функция:
async listenProgrammStatus(uid, programmId, onUpdate) {
const unsubscribe = firebase.firestore().collection('Users').doc(uid).collection('ProgrammStatus').doc(uid + programmId).onSnapshot(function (doc) {
console.log('DOC', doc);
if (doc.exists) {
const status = doc.data();
status.id = doc.id;
onUpdate(status);
}
})
console.log(unsubscribe)
return unsubscribe;
},
И я называю это так:
const unsubscribeStatus = db.listenProgrammStatus(this.user.uid, this.programm.id, (status) => {
console.log('STATUS', status);
this.status = status;
})
console.log('UNSUB', unsubscribeStatus)
this.unsubscribeStatus = unsubscribeStatus;
Как бы то ни было, функция отмены подписки, которую я вернул, не работает после того, как я вернул ее,вызов unsubscribeStatus()
не сработает.
unsubscribe()
работает в listenProgrammStatus
, но когда я возвращаю функцию, она становится обещанием, и я не могу вызвать unsubscribeStatus ()
.
Есть идеи?