mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
33 lines
740 B
JavaScript
33 lines
740 B
JavaScript
|
import 'firebase/messaging'
|
||
|
import firebase from 'firebase/app'
|
||
|
import localforage from 'localforage'
|
||
|
|
||
|
const firebaseCloudMessaging = {
|
||
|
tokenInlocalforage: async () => {
|
||
|
return localforage.getItem('fcm_token')
|
||
|
},
|
||
|
|
||
|
init: async function () {
|
||
|
firebase.initializeApp({
|
||
|
messagingSenderId: 'your sender id'
|
||
|
})
|
||
|
|
||
|
try {
|
||
|
if ((await this.tokenInlocalforage()) !== null) {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
const messaging = firebase.messaging()
|
||
|
await messaging.requestPermission()
|
||
|
const token = await messaging.getToken()
|
||
|
|
||
|
localforage.setItem('fcm_token', token)
|
||
|
console.log('fcm_token', token)
|
||
|
} catch (error) {
|
||
|
console.error(error)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export { firebaseCloudMessaging }
|