我们遇到Firebase访问延迟问题。 我们有Firebase SDK的Node.js应用程序。 在代码中,我们接下来对Firebase的请求产生了后果: 1.通过GeoFire获取密钥 然后通过键并行获得几个(从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请求中获得更具可预测性和可持续性的延迟?
答案 0 :(得分:1)
我们将功能与后端迁移到云功能,情况有所改善。每个功能大约开始工作1.5-2秒。目前,我们对这种情况感到满意。