@garbarino/gb-jscommons
Version:
A package of common functions used in our JavaScript applications.
52 lines (45 loc) • 1.4 kB
JavaScript
import firebase from 'firebase';
const firebaseConfig = {
apiKey: "AIzaSyCCOvoj8lRog-H5WE9b7ulGfsUx0AeAkY0",
authDomain: "push-notifications-5768d.firebaseapp.com",
databaseURL: "https://push-notifications-5768d.firebaseio.com",
projectId: "push-notifications-5768d",
storageBucket: "push-notifications-5768d.appspot.com",
messagingSenderId: "829838709499",
appId: "1:829838709499:web:1a69eebabb3dda03fe565e",
measurementId: "G-HP8JP918W9"
};
firebase.initializeApp(firebaseConfig);
const messaging = firebase.messaging();
// Pedimos permiso
export function canAskForPermission() {
return Notification.requestPermission();
}
// Capturo token
export function getToken() {
return messaging.getToken();
}
export function getSubscription() {
if ((('serviceWorker' in navigator) && ('PushManager' in window))) {
return navigator.serviceWorker.getRegistration()
.then(function(registration) {
return registration.pushManager.getSubscription();
})
} else {
return Promise.reject("Push notifications not compatible");
}
}
// Envio de token
export function sendSubscriptionToBackEnd(subscription, platform) {
return fetch('/normandia/services/push_tokens', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/json'
}),
body: JSON.stringify({
"subscription": subscription,
"platform": platform || ""
}),
credentials: "same-origin"
});
}