我是一个Angular 5(OSWindows 10)应用程序,我已根据FCM文档设置了清单sw(服务器工作文件),更新了angular-cli和index.html。添加了senderid。在我的服务工作者文件中,我正在调用firebase.initializeApp'用我的messagingSenderId。
然而,当我运行应用程序时,我收到以下错误: " Firebase:没有Firebase应用程序' [DEFAULT]'已创建 - 请致电Firebase App.initializeApp()(app / no-app)。"
我尝试添加以下代码(在我的message.service中),但没有成功:
private _messaging: firebase.messaging.Messaging;
private messageSource = new Subject();
currentMessage = this.messageSource.asObservable();
constructor(
private _afs: AngularFirestore,
@Inject(FirebaseApp) private _firebaseApp: firebase.app.App,
) {
this._messaging = firebase.messaging(this._firebaseApp);
}
... 我也检查了,没有其他的sw。
答案 0 :(得分:0)
您需要在网络设置中调用应用程序初始化:
https://firebase.google.com/docs/web/setup
<script>
// Initialize Firebase
// TODO: Replace with your project's customized code snippet
var config = {
apiKey: "<API_KEY>",
authDomain: "<PROJECT_ID>.firebaseapp.com",
databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
projectId: "<PROJECT_ID>",
storageBucket: "<BUCKET>.appspot.com",
messagingSenderId: "<SENDER_ID>",
};
firebase.initializeApp(config);
</script>
为了确保您已初始化应用,您可以这样检查:
if (!firebase.apps.length) {
//app not init do so now
firebase.initializeApp(appConfig);
}
答案 1 :(得分:0)
我通过在app.module中添加Firebase初始化解决了这个问题。问题是时间问题。启动发生在最近,服务启动后。