AngularFire 更新破坏了应用程序

AngularFire update breaks the app

我一直在关注 Traversy Media 在 Udemy 上的 Angular4 course,一切顺利,直到我到达客户端的 AngularFire2 设置和客户端服务 部分面板项目。 Webpack 无法编译说明: FirebaseListObservableFirebaseObjectObservable 没有导出成员。

看到有几个人提similar issues on GitHub,但是想不出怎么解决。我还尝试了讲师提供的确切代码(这是最后的手段,因为我宁愿自己弄清楚),但这也没有用。 Angularfire2版本为:4.0.0-rc.1

错误信息:

这是 client.service.ts 文件:

import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable} from 'angularfire2/database';
import { Observable } from 'rxjs';
import { Client } from '../models/Client';

@Injectable()
export class ClientService {
  clients: FirebaseListObservable<any[]>;
  client: FirebaseObjectObservable<any>;

  constructor(
    public af:AngularFireDatabase
  ) { 
    this.clients = this.af.list('/clients') as FirebaseListObservable<Client[]>;
  }

  getClients(){
    return this.clients;
  }

  newClient(client:Client){
    this.clients.push(client);
  }

  getClient(id:string){
    this.client = this.af.object('/clients/'+id) as FirebaseObjectObservable<Client>;
    return this.client;
  }

  updateClient(id:string, client:Client){
    return this.clients.update(id, client);
  }

  deleteClient(id:string){
    return this.clients.remove(id);
  }

}

这是唯一在 VS Code linter 中显示错误的文件:

提前感谢您提供任何有用的见解。

在过去的几个版本中,有 3 种不同的方法来导入数据库观察值。

版本 < 4.0:

import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2";

版本 > 4.0:

import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2/database"; 

版本 > 5.0:

因为 5.0 你可以使用正常的 observables 来代替,或者像这样从不推荐使用的目录导入它:

import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2/database-deprecated"; 

我建议您将版本从 rc 升级到 4.0 或其他版本。