【问题标题】:Ionic / Firebase app slow to establish connection after being in the backgroundIonic / Firebase 应用程序在后台后建立连接缓慢
【发布时间】:2019-05-22 21:27:06
【问题描述】:

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

我遇到了一个问题,当用户在应用空闲后返回应用并向下滑动以刷新提要时,有时需要 30 秒才能加载。

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

但是,有 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;
    });

我不知道是什么导致了这个问题...有什么想法吗?

谢谢!

【问题讨论】:

  • 我们无法说出您的测试连接速度慢的原因。但是如果你enable debug logging,输出可能会给你一些信息。
  • @FrankvanPuffelen 我找到了解决方案.. 我想你可能有兴趣看看我是如何解决这个问题的 :)

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


【解决方案1】:

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

从后台返回后无法检查用户的身份验证,所以我的修复是在平台为ready 后才运行onAuthStateChanged。立即建立 Firebase 连接!

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

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

【讨论】:

  • 这很有趣,简。所以你需要在 Ionic 应用程序从后台恢复后重新附加身份验证状态侦听器?
  • 谢谢,希望对您有所帮助。
猜你喜欢
  • 2014-01-25
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2017-09-22
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多