Firebase 访问延迟
Firebase access latency
我们遇到了 Firebase 访问延迟问题。
我们有 Node.js 个带有 Firebase SDK 的应用程序。
在代码中,我们对 Firebase 的请求有下一个结果:
1.通过GeoFire获取钥匙
2. 然后通过按键并行获得几个(从 3 到 100)个 b运行ches。
3. 然后通过键并行从另一个实体获得相同数量的b运行ches。
在 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 云位置(代码是 运行 on Google Compute Engine)导致延迟不稳定的原因。我们尝试从 us-west1
到 us-central1
。请带我们到正确的数据中心位置。
但是后来我们将代码重写为 Google 函数并得到了相同的结果。
请告诉我们,我们如何才能获得更可预测和可持续的 Firebase 请求延迟?
我们将带有后端的功能迁移到云功能,情况有所改善。每个功能大约在 1.5 - 2 秒内开始工作得更快。目前,我们对这种情况感到满意。
我们遇到了 Firebase 访问延迟问题。 我们有 Node.js 个带有 Firebase SDK 的应用程序。 在代码中,我们对 Firebase 的请求有下一个结果: 1.通过GeoFire获取钥匙 2. 然后通过按键并行获得几个(从 3 到 100)个 b运行ches。 3. 然后通过键并行从另一个实体获得相同数量的b运行ches。 在 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 云位置(代码是 运行 on Google Compute Engine)导致延迟不稳定的原因。我们尝试从 us-west1
到 us-central1
。请带我们到正确的数据中心位置。
但是后来我们将代码重写为 Google 函数并得到了相同的结果。
请告诉我们,我们如何才能获得更可预测和可持续的 Firebase 请求延迟?
我们将带有后端的功能迁移到云功能,情况有所改善。每个功能大约在 1.5 - 2 秒内开始工作得更快。目前,我们对这种情况感到满意。