当前正在开发使用离子技术的混合移动应用程序。当应用启动时,并且用户第一次写入实时数据库,它总是会延迟大约10秒钟或更长时间。但是任何后续写入几乎都是瞬时的(不到1秒)。
我的延迟计算基于在Firebase控制台中查看数据库。
这是一个已知问题,还是我做错了什么。请分享您的看法。
编辑:
写入操作是通过Firebase Cloud Function进行的。
这是对Firebase Cloud函数的调用
this.http.post(url+"/favouritesAndNotes", obj, this.httpOptions)
.subscribe((data) => {
console.log(data);
},(error)=>{
console.log(error);
});
这是实际功能
app.post('/favouritesAndNotes', (request, response) => {
var db = admin.database().ref("users/" + request.body.uid);
var favourites = request.body.favourites;
var notes = request.body.notes;
if(favourites!==undefined){
db.child("favourites/").set(favourites);
}
if(notes!==undefined){
db.child("notes/").set(notes);
}
console.log("Write successfull");
response.status(200).end();
});
答案 0 :(得分:5)
您第一次在客户端实例中与Firebase数据库进行交互时,客户端/ SDK必须做一些事情:
其中的每一个都可能需要多次往返,因此,即使您离服务器只有几百毫秒的路程,它的总和也会增加。
同一客户端的后续操作不必执行这些步骤,因此会更快。
如果您想查看实际情况,建议您查看浏览器的“网络”选项卡。对于实时数据库,我建议检查“网络”选项卡的“ WS / Web套接字”面板,您可以在其中查看实际的数据帧。