【发布时间】:2017-09-11 19:49:36
【问题描述】:
我们遇到了 Firebase 访问延迟问题。 我们有带有 Firebase SDK 的 Node.js 应用程序。 在代码中,我们有对 Firebase 请求的下一个结果: 1. 通过 GeoFire 获取密钥 2. 然后通过键并行获取多个(从 3 到 100 个)分支。 3. 然后通过键并行从另一个实体获取相同数量的分支。 在 Javascript 方言中,并行请求如下所示:
const cardsRefs = map(keys, (key) => this.db.ref('cards').child(key));
return Promise.all(map(cardsRefs, (ref) => {
return ref
.once('value')
.then((snapshot) => snapshot.val())
})
);
仅此而已,我认为没有那么大。
但这可能需要很长时间(最多 5000 毫秒)。我们不能确定这个时间,因为它有时可能是 700 毫秒,有时可能会更多(高达 5000 毫秒)。我们预计 Firebase 在这一点上会有更多可预测的行为。
首先,我们认为错误选择的 Google Cloud 位置(代码在 Google Compute Engine 上运行)导致延迟不稳定的原因。我们从us-west1 和us-central1 尝试过。请引导我们到正确的数据中心位置。
但随后我们将代码重写为 Google Function 并得到了相同的结果。
请告诉我们,我们如何才能在 Firebase 请求上获得更可预测和更可持续的延迟?
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-platform google-compute-engine latency