Angular 离子型2+;Firebase快速搜索

Angular 离子型2+;Firebase快速搜索,angular,firebase,firebase-realtime-database,ionic2,angularfire2,Angular,Firebase,Firebase Realtime Database,Ionic2,Angularfire2,我正在尝试在从firebase检索的数据中输入过滤。作为Ng2和爱奥尼亚的新手,我面临着与搜索查询速度有关的问题。 我有很多记录保存这个词和它的同义词。目标是使实时搜索与同义词相似并过滤同义词。 因为这个例子展示了如何对静态数据进行过滤,所以我尝试让我的代码处理firebase查询 我检索数据的方式非常标准,但是有很多数据我必须将ITIAL查询减少到20项 我认为分页不是那么必要,但搜索查询需要几分钟!似乎我不能做任何事情,只能改变数据模型,将同义词嵌套在与单词相关的对象中,而不是关系词->同

我正在尝试在从firebase检索的数据中输入过滤。作为Ng2和爱奥尼亚的新手,我面临着与搜索查询速度有关的问题。 我有很多记录保存这个词和它的同义词。目标是使实时搜索与同义词相似并过滤同义词。 因为这个例子展示了如何对静态数据进行过滤,所以我尝试让我的代码处理firebase查询

我检索数据的方式非常标准,但是有很多数据我必须将ITIAL查询减少到20项

我认为分页不是那么必要,但搜索查询需要几分钟!似乎我不能做任何事情,只能改变数据模型,将同义词嵌套在与单词相关的对象中,而不是关系词->同义词的作者

代码是包含AngularFire的标准Angular2组件

import { Component } from '@angular/core';
import {AngularFire, FirebaseListObservable} from 'angularfire2';
import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

public afService:any;
items: FirebaseListObservable<any[]>;

constructor(public navCtrl: NavController, af: AngularFire) {
  this.afService = af;
  this.items = this.initItems(50);
}

// I'm not using provider for now
initItems(qty, serchQuery="guttenavan") {
  return this.afService.database.list('/', {
          query: {
            limitToFirst: qty,
            orderByChild: 'word',  // Search field
            equalTo: serchQuery
          }
        })
}

getItems(ev) {

    this.initItems(50);

    var val = ev.target.value;

    if (val && val.trim() != '') {
      this.items = this.initItems(9999, val.toLowerCase());
      console.log(val.toLowerCase());
    }
  }

}
从'@angular/core'导入{Component};
从“angularfire2”导入{AngularFire,FirebaseListObservable};
从'ionic angular'导入{NavController};
@组成部分({
选择器:“主页”,
templateUrl:'home.html'
})
导出类主页{
公共服务:任何;
项目:可观察到的FirebaseList;
构造器(公共navCtrl:NavController,af:AngularFire){
this.afService=af;
this.items=this.initItems(50);
}
//我现在不使用提供商
初始项目(数量,serchQuery=“guttenavan”){
返回此.afService.database.list(“/”{
查询:{
限制第一:数量,
orderByChild:'单词',//搜索字段
equalTo:serchQuery
}
})
}
获取项目(ev){
本条包括第(50)项;
var val=ev.target.value;
如果(值和值修剪()!=“”){
this.items=this.initItems(9999,val.toLowerCase());
log(val.toLowerCase());
}
}
}
我将非常高兴听到任何关于为什么它非常慢以及如何修复它的建议。 我也很高兴获得一些关于firebase和ionic分页/无限滚动的有价值信息。 多谢各位