AngularFireList is not assignable to type 'Observable<Response>

廉价感情. 提交于 2019-12-03 13:14:52

In order to get Observable<Response> from AngularFireList from 5.0 onwards, use valueChanges() function.

Check the change here.

return this.afDatabase.list('/Groups', {
       query:{
         orderByChild: 'namelower',
         startAt: (ev.target.value),
         endAt: (ev.target.value + '\uf8ff')
       }
      }
     ).valueChanges();

If you want to save an instance of this.afDatabase.list() in this.groups, it will be AngularFireList instead of FirebaseListObservable.

You need to use .valueChanges() as shown below.Here is the doc.

  groups: AngularFireList<any>;

  constructor(){}

getItems = (ev: any) : AngularFireList<any> {
  this.groups =  this.afDatabase.list('/Groups', {
       query:{
         orderByChild: 'namelower',
         startAt: (ev.target.value),
         endAt: (ev.target.value + '\uf8ff')
       }
      }
     ).valueChanges();

    return this.groups;
}

Angular 5.0 is refactor of AngularFireDatabase,it remove FirebaseListObservable and FirebaseObjectObservable

FirebaseListObservable ====> AngularFireList FirebaseObjectObservable====>AngularFireObject

you can follow link

Serkan ünal

In Angularfire2 5.0 or higher, if you need observable list with a query you have to use AngularFireAction as you see below

import { Component } from '@angular/core';
import { IonicPage, NavParams, ViewController} from 'ionic-angular';
import {AngularFireDatabase, AngularFireAction} from 'angularfire2/database';
import { Observable } from 'rxjs/Observable';
import {EmptyObservable} from 'rxjs/observable/EmptyObservable';
// import { Response } from '@angular/http';
import * as firebase from 'firebase/app';

@IonicPage()
@Component({
  selector: 'page-modal-groups',
  templateUrl: 'modal-groups.html',
})
export class ModalGroupsPage {

  
  groups: Observable<AngularFireAction<firebase.database.DataSnapshot>[]>;

  

  constructor(public navParams: NavParams,
    public viewCtrl:ViewController,
    public afDatabase: AngularFireDatabase) {
  }

 -

  getItems = (ev: any) : Observable<AngularFireAction<firebase.database.DataSnapshot>[]> => {
    if(!ev.data){
      return this.groups = new EmptyObservable();
    }
    this.groups =  this.afDatabase.list('/Groups', ref => ref.orderByChild('namelower').startAt(ev.target.value).endAt(ev.target.value + '\uf8ff')).valueChanges();
    // this.groups = this.groupsRef.valueChanges();
      return this.groups;
  }

  chooseGroups(item:any){
    // this.product.push({key:item.$key, name:item.name, price:item.price, quantity:1 });
      
    this.viewCtrl.dismiss(item); 
    // console.log(this.product);
  }

  closeModal(){
    this.viewCtrl.dismiss(); 
  }

}
Norman Pilusa

I installed the following versions of angularfire2 and firebase:

npm install  angularfire2@4.0.0-rc0 firebase --save
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!