我有一个使用Firebase和Angular构建的Ionic应用程序。
我遇到一个问题,当用户在闲置后返回到该应用程序时,他们向下滑动以刷新Feed,有时需要30秒才能加载。
大约70%的时间是在返回应用程序后立即刷新,有时我会在8小时后返回并向下滑动以刷新,这实际上是即时的。
但是,
我想知道是否有人知道这可能是问题所在。如果我不得不猜测这是因为与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;
});
我不知道是什么原因导致此问题...有什么想法?
谢谢!
答案 0 :(得分:1)
发现它实际上是Firebase身份验证错误。
从后台返回后,它无法检查用户的身份验证,因此仅在平台为onAuthStateChanged
后,我的修订才运行ready
。即时建立了Firebase连接!
this.platform.ready().then(() => {
this.afAuth.auth.onAuthStateChanged((user) => {
//code here
});
});
希望对某人有帮助,因为这是一个奇怪的问题。