Firebase云消息-调用Firebase.Messaging()时出错



我从html页面(而不是服务工作者(调用firebase.messaging()时遇到一个毫无意义的错误。

消息:请确保在中正确设置了"messagingSenderId"传递到firebase.initializeApp((中的选项。(消息/发件人id不正确(。

应用程序在<head>中的<script>中使用正确的messagingSenderId进行初始化。默认应用程序显示在控制台日志中:

function deviceRegistration() {
console.log('in deviceRegistration()');
console.log("firebase.apps:", firebase.apps);
console.log("firebase.apps.length: ", firebase.apps.length);
if (firebase.apps.length == 0) {
// firebase.initializeApp({{ fcm_config.messagingSenderId }});
firebase.initializeApp({"messagingSenderId": "1234567890"});
}
console.log("after initializeApp");  // prints to console
var messaging = firebase.messaging();  // error happens here
console.log("after firebase.messaging()");  // doesn't print to console

如果firebase.apps中没有应用程序,我只调用firebase.initializeApp的原因是,当我在没有首先执行此检查的情况下调用firebase.initializeApp时,我会得到以下错误:

Firebase:名为"[DEFAULT]"的Firebase应用程序已存在(应用程序/重复应用程序(。

我想我应该能够重复调用initializeApp(在每一页上(,如果需要的话,它会注册服务工作者。。。

有人能帮我弄清楚发生了什么事吗?

哦,傻我…

我用一个(django(模板标记和上下文变量填充了配置变量,但我错误地引用了这个变量。我做到了:

var config = {
apiKey: "{{ fcm_config.apiKey }}",
authDomain: "{{ fcm_config.authDomain }}",
databaseURL: "{{ fcm_config.databaseURL }}",
projectId: "{{ fcm_config.projectId }}",
storageBucket: "{{ fcm_config.storageBucket }}",
messagingSenderId: "{{ fcm_config.messagingSenderId }}"
};
firebase.initializeApp(config);

当我打算这么做的时候:

var config = {
apiKey: "{{ fcm_config.config.apiKey }}",
authDomain: "{{ fcm_config.config.authDomain }}",
databaseURL: "{{ fcm_config.config.databaseURL }}",
projectId: "{{ fcm_config.config.projectId }}",
storageBucket: "{{ fcm_config.config.storageBucket }}",
messagingSenderId: "{{ fcm_config.config.messagingSenderId }}"
};
firebase.initializeApp(config);

所以firebase抱怨发送者ID不好是正确的,因为我传递了一个等价于的对象

firebase.initializeApp({
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
});

现在这个部分工作了,我开始下一个错误!

(如果你想知道为什么我把这些变量放在fcm_config.config.*中,这似乎是多余的,那是因为我还存储了fcm_config.VAPID(

相关内容

  • 没有找到相关文章

最新更新