【发布时间】:2018-07-13 08:03:42
【问题描述】:
我正在尝试将 fcm 集成到我的 angular 6 中。
这是我所做的。
firebase-messaging-sw.js
importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': '93480234033'
});
const messaging = firebase.messaging();
push-notification.js
import firebase from 'firebase';
export const askForPermissioToReceiveNotifications = async () => {
try {
const messaging = firebase.messaging();
console.log('000ooppp', messaging)
messaging.requestPermission()
.then(function(){
console.log('I am in here');
return messaging.getToken()
.then(function(currentToken) {
console.log(currentToken);
})
}).catch(function(err) {
console.log('Unable to get permission to notify.', err);
});
} catch (error) {
console.error(error);
}
}
这两个文件在 src 文件夹中。
我已经在 firebase 控制台上创建了一个应用程序,并且我已经获得了配置对象
config: {
apiKey: "*****",
authDomain: "*****",
databaseURL: "*****",
projectId: "*****",
storageBucket: "*****",
messagingSenderId: "*****"
}
在我的 app.module.ts 文件中,我正在使用上述对象初始化 firebase
import { AngularFireModule } from 'angularfire2';
import { ServiceWorkerModule } from '@angular/service-worker';
然后在导入中
imports: [
...
...
AngularFireModule.initializeApp(environment.firebase),
ServiceWorkerModule.register('/combined-worker.js', { enabled: environment.production })
...
...
]
在 app.component.ts 中
import { askForPermissioToReceiveNotifications } from './../push-notification';
ngOnInit () {
console.log('pop')
askForPermissioToReceiveNotifications();
}
我想要做的是当用户登陆页面并且他允许向他显示通知时,应该为该特定用户生成唯一的设备令牌 ID,当他点击显示时我如何生成设备令牌 ID通知?
在控制台中收到此错误
Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app)
【问题讨论】:
-
不确定您是否在正确的位置调用了 initializeApp。请查看github.com/angular/angularfire2/blob/master/docs/…
标签: firebase push-notification firebase-cloud-messaging service-worker angular6