Firestore服务工作者和推送通知

时间:2018-06-11 18:46:49

标签: angular firebase firebase-notifications

我是一个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。

2 个答案:

答案 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初始化解决了这个问题。问题是时间问题。启动发生在最近,服务启动后。