Ionic / Firebase应用程序在后台运行后建立连接缓慢

时间:2018-12-23 04:23:14

标签: firebase cordova ionic-framework firebase-realtime-database ionic3

我有一个使用Firebase和Angular构建的Ionic应用程序。

我遇到一个问题,当用户在闲置后返回到该应用程序时,他们向下滑动以刷新Feed,有时需要30秒才能加载。

大约70%的时间是在返回应用程序后立即刷新,有时我会在8小时后返回并向下滑动以刷新,这实际上是即时的。

但是, sooo 需要30%的时间。大约30-40秒。它太长了,而且没有明显的原因。

我想知道是否有人知道这可能是问题所在。如果我不得不猜测这是因为与Firebase的连接花费了很长时间,但是我不确定该如何解决那?它似乎也不基于连接。

我的下扫代码:

  doRefresh(refresher) {
    this.goToNew(true);
    refresher.complete();
  }

this.goToNew()是:

  this.database.database.ref('/posts/'+this.feedId)
  .orderByChild('created')
  .limitToLast(10)
  .once('value', (snapshot) => {
    snapshot.forEach(child => {
        this.feedCounter.push(child.val());
        this.postFeed.push(child.val());
        this.postFeed.sort(function(a,b){
          return +new Date(b.created) - +new Date(a.created);
        });
        if(this.feedCounter.length >= 10) {
          this.firstRun = false;
        }
        return false;
    });

我不知道是什么原因导致此问题...有什么想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

发现它实际上是Firebase身份验证错误。

从后台返回后,它无法检查用户的身份验证,因此仅在平台为onAuthStateChanged后,我的修订才运行ready。即时建立了Firebase连接!

this.platform.ready().then(() => {
    this.afAuth.auth.onAuthStateChanged((user) => {
       //code here
 });
});

希望对某人有帮助,因为这是一个奇怪的问题。