【发布时间】:2016-04-24 13:25:49
【问题描述】:
我正在尝试将 Firebase 集成到我的 Angular 2 应用程序中,但我不断收到 Firebase is not a constructor 的错误消息。以下是我所做的:
- 使用 bower 安装了 firebase
- 引用了 index.html 中的脚本。
- 安装 firebase 环境类型
- 创建了 Firebase 服务
- 通过
bootstrap()提供 - 将其注入组件中
FirebaseService.ts
@Injectable()
export class FirebaseService
{
dataRef: Firebase;
constructor() {
this.dataRef = new Firebase('https://boiling-inferno-1117.firebaseio.com/votes');
}
}
boot.ts
bootstrap(App, [HTTP_PROVIDERS,
ROUTER_PROVIDERS,
IdentityService,
ApiService,
UrlService,
provide(FirebaseService, {useValue: new FirebaseService()})
])
.catch(err => console.error(err));
app.ts
@Component({
selector: 'app',
templateUrl: 'app/app.html',
directives: [AuthRouterOutlet, ROUTER_DIRECTIVES]
})
export class App {
constructor(private firebase:FirebaseService)
{
}
}
Systemjs 配置:
System.config({
defaultJSExtensions: true,
map: {
'jquery': 'vendors/js/jquery',
'firebase': 'vendors/js/firebase'
},
packages: {
angular2: { defaultExtension: false },
rxjs: { defaultExtension: false }
}
});
并像下面这样导入Firebase:
import * as Firebase from 'firebase';
非常感谢任何关于我可以做些什么来解决这种情况的建议。
【问题讨论】:
-
我们可以假设:provide(FirebaseService, {useValue: new FirebaseService()}) 是一个错字吗?因为您应该使用提供程序,然后它需要一个数组。提供者:[FirebaseService]
-
能否提供您的 SystemJS 配置?以及导入 Firebase 类的方式?谢谢!
-
@R.Richards 也试过了。同样的错误。
标签: typescript firebase angular