问题描述
我必须在某些特定条件下实时更新数据。即在我的情况下,我必须根据会话ID和用户ID更新数据库cloudfirestore。下面是代码。
let docIdOfNonExistance = this.firestore.collection(
'testdb',(ref_non_user) =>
ref_non_user
.where('userId','>',result.userId)
.where('sessionId','==',result.sessionId)
);
docIdOfNonExistance.snapshotChanges().subscribe((ref_non_user: any) => {
console.log(ref_non_user);
ref_non_user.forEach((doc_list) => {
this.firestore
.collection('testdb')
.doc(doc_list.payload.doc.id)
.update({ status: 'pending' });
});
});
一切正常,实时数据正确更新 但是问题是在更新数据后,它会自动恢复到先前的状态。并且发生多次更新。我也尝试过unsubscribe()方法,但是由于unsubscribe方法,这是第二次,数据无法实时更新。
此外,我们可以直接使用docId更新,但是在这里我必须基于sessionId和userId进行更新。
以这种方式使用时,请帮助我,如何自动多次触发。 我发现这主要是由于snapshotChanges()方法引起的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)