代码之家  ›  专栏  ›  技术社区  ›  Lakshan Thilakarathne

Firebase 5 Angular 5 AngularFireList。snapshotChanges()错误

  •  4
  • Lakshan Thilakarathne  · 技术社区  · 6 年前

    当我尝试在Angular5/Firebase5应用程序中订阅AngularFireList时,出现以下错误。

    zone.js:192 Uncaught TypeError: Object(...) is not a function
        at SwitchMapSubscriber.eval [as project] (changes.js:7)
        at SwitchMapSubscriber._next (switchMap.js:91)
        at SwitchMapSubscriber.Subscriber.next (Subscriber.js:95)
        at RefCountSubscriber.Subscriber._next (Subscriber.js:131)
        at RefCountSubscriber.Subscriber.next (Subscriber.js:95)
        at Subject.next (Subject.js:56)
        at ConnectableSubscriber.Subscriber._next (Subscriber.js:131)
        at ConnectableSubscriber.Subscriber.next (Subscriber.js:95)
        at Notification.observe (Notification.js:32)
        at AsyncAction.DelaySubscriber.dispatch (delay.js:91)
    

    我的服务和控制器类内容如下,

    1) 名为“FirebaseService”的服务

    customers: AngularFireList<any>;
    getCustomers(){
        this.customers = this.fire.list('users');
        return this.customers;
      }
    

    2) 控制器

    constructor(private firebase: FirebaseService) { }
    
    serviceProviders: ServiceProvider[];
    var x = this.firebase.getServiceProviders();
        x.snapshotChanges().subscribe(item => {
          this.serviceProviders = [];      
          item.forEach(element => {
            var y = element.payload.toJSON();
            y["$key"] = element.key;
            this.serviceProviders.push(y as ServiceProvider);
          });
        });
    
    2 回复  |  直到 6 年前
        1
  •  8
  •   James Daniels    6 年前

    AngularFire的最新版本需要rxjs 6。请升级rxjs并包括 rxjs-compat 如果您有尚未升级的依赖项。

        2
  •  3
  •   Gustavo Martínez    6 年前

    我在使用AngularFireList时遇到了类似的问题。valueChanges() 安装最新版本的AngularFire(5.0.0-rc.10)时,会出现npm警告

    npm警告angularfire2@5.0.0-rc。10需要rxjs@^6.0.0的对等机,但未安装任何对等机

    所以我安装了这个依赖项

    npm install rxjs@^6.0.0 --save 在我的项目中

    还需要安装以下依赖项。

    npm install --save rxjs-compat

    问题解决了