【问题标题】:firebase real time database takes a long time to load datafirebase实时数据库需要很长时间才能加载数据
【发布时间】:2020-09-12 14:47:59
【问题描述】:

Firebase 实时数据库加载数据需要很长时间。这是我在数据库中的数据的屏幕截图。我可以做些什么来优化加载?除了firebase之外,还有其他地方可以存储数据吗?数据大小为3.8MB,结构如下

{"10-happier": {body: "test"}, "zero-to-one": {body: "test2"}}

这是我的代码

 var defer = Q.defer();
 app.database().ref('content').once('value').then(snapshot => {
   if (snapshot && snapshot.val()) {
       defer.resolve(snapshot.val());
   } else {
       defer.resolve({});
   }
}).catch( error => {
   defer.reject(error);
});
return defer.promise;

【问题讨论】:

  • 您的客户只需要这些 3.8 MB 吗?或者你只需​​要那些 3.8 MB 的数据?
  • 请出示您的代码以获取此数据。
  • 我需要全部 3.8MB
  • @Ashish 我添加了代码
  • 值是节点名?

标签: firebase firebase-realtime-database


【解决方案1】:

您无法优化这样的查询。当您获取整个节点时:

app.database().ref('content').once('value')

SDK 会下载所有内容,它需要的时间与获取整个内容的时间一样长。总体性能将取决于客户端与服务器的连接速度。如果您希望查询更快,唯一可行的选择是更快地连接到实时数据库。

或者,您可以完全绕过数据库的使用,而使用涉及某种形式的压缩或 CDN 的不同存储方法,以便更有效地为最终用户提供内容。由于对软件和服务的建议对于 Stack Overflow 来说是无关紧要的,因此您必须进行一些研究以确定您的选择是什么以及最适合您的具体情况。

【讨论】: