【发布时间】:2018-12-27 23:42:49
【问题描述】:
我需要在页面上放置大约 20 个 Vue 组件。每个组件在挂载时都会为自己创建一个onSnapshot,并相应地在它被删除时创建unsubscribe()。
const ref = firebase.firestore().collection('components').doc('comp1')
var unsubscribe = ref.onSnapshot(querySnapshot => {
querySnapshot.forEach(doc => {
...
})
}
每个onSnapshot / unsubscribe 的成本是多少:
- 就执行时间而言
- 在金钱意义上(根据 Firebase 的价格)
例如,如果 1000 个用户中的每个用户在半小时内更新一个包含 20 个组件的页面 100 次,我将支付多少?
也许将onSnapshot 放在整个collection 的组件上会更好?
【问题讨论】:
-
如果您担心读/写操作过多,您可以切换到 Firebase 实时数据库,因为它只对带宽和存储收费,而 Firestore 的成本取决于 crud 操作。 See documentation here
-
谢谢,但我最近刚从实时数据库切换到 Firestore!出于某种原因,实时数据库不适合我。我需要知道我的决定是否正确。我还想了解此特定解决方案的定价,以确定是否需要连接付费计划。
-
您的 20 个组件都需要实时更新吗?您可以将混合解决方案替换为fetching data once,并且只启用真正需要的组件的实时更新
-
也就是说,我的决定是“昂贵的”,不应该这样做吗?是否值得为整个组件集合做一个
onSnapshot?这样更好吗? -
如果您的所有数据都在一个集合中,那将是一个好方法
标签: firebase vue.js google-cloud-firestore