在我的情况下,有一个名为users
的集合,其中包含users
个文档。每个user
都有一个名为reviews
的集合。
所以可以说,我要呈现一个users
的列表,并在该列表中每个user
的后面,我要显示他们获得的评论数量,并且希望该数量自动更新。 / p>
我正在使用Vue.js
,因此在我的情况下,我尝试呈现用户列表,并为每个ListItem
组件尝试在created() {}
选项中设置侦听器。
created() {
listenForRateUpdates('uidOfThisUser')
}
上面的功能是从另一个firebaseApi.js
文件导入的。
export function listenForRateUpdates(uid) {
setListener(uid, 'reviews')
}
function setListener(uid, type) {
db.collection("users").doc(uid).collection(type).onSnapshot(result => {
console.log('updated received')
store.commit('updateRating', {
[type]: result.size,
uid
})
})
}
由于某些原因,当我知道已添加评论时,我从未从Firebase获得任何更新。
我也有三种类型的评论(我在上面简化了我的代码),所以如果a有30个用户的列表,我突然会有90个firebase监听器,这似乎效率很低。
我是Firebase的Firestore的新手,所以我可能做错了这个方法。