AngularFire更新破坏了应用程序

问题描述 投票:0回答:1

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

我看到一些人提高similar issues on GitHub,但无法弄清楚如何解决它。此外,我已经尝试了教师提供的确切代码(这是最后的手段,因为我宁愿自己弄清楚),但这也不起作用。 Angularfire2版本是:4.0.0-rc.1

错误消息:Webpack fails to compile

这是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中显示错误的文件:No exported member error

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

angular typescript firebase webpack angularfire2
1个回答
1
投票

在过去的几个版本中,有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或其他东西。

© www.soinside.com 2019 - 2024. All rights reserved.