Skip to content

Instantly share code, notes, and snippets.

@claudiojunior-me
Created April 20, 2019 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save claudiojunior-me/7bae497bca1a6f7c5a4009317bfd4e52 to your computer and use it in GitHub Desktop.
Save claudiojunior-me/7bae497bca1a6f7c5a4009317bfd4e52 to your computer and use it in GitHub Desktop.
// Initialize Firebase
const config = {
apiKey: "AIzaSyDiiS4nQyeseAANNXDlcQ6_kwWeTN7s5SI",
authDomain: "sults-f1948.firebaseapp.com",
databaseURL: "https://sults-f1948.firebaseio.com",
projectId: "sults-f1948",
storageBucket: "sults-f1948.appspot.com",
messagingSenderId: "780489121414"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.usePublicVapidKey('BBBVO9Ce6-CdgYqXkWkVP0M_0BiEw4MkY1cKbl6tQxsWtD3k1X900K0YPQ0yIfIVc7w8Xcw4Md2ppbWB0aPWm-Og');
function getNotificationPermission() {
messaging
.requestPermission()
.then(function() {
return;
})
.catch(function(err) {
console.error('Unable to get permission to notify.', err);
throw err;
});
}
function getDeviceToken() {
messaging
.getToken()
.then(function(currentToken) {
debugger;
if (currentToken) {
return currentToken;
} else {
// Show permission request.
throw 'No Instance ID token available. Request permission to generate one.';
}
})
.catch(function(err) {
console.log('An error occurred while retrieving token. ', err.message);
throw err.message;
});
}
function getCookieUserData() {
return {
user: getCookie('usuario'),
rede: getCookie('empresa'),
};
}
function getCookie(cname) {
let name = cname + '=';
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for (let valueIndex = 0; valueIndex < ca.length; valueIndex++) {
let c = ca[valueIndex];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return '';
}
function sendTokenToServer(userEmail, userRede, deviceToken) {
debugger;
const db = firebase.firestore();
db.collection('users')
.add({
user: userEmail,
deviceToken: deviceToken,
rede: userRede,
})
.then((res) => {
return;
})
.catch((err) => {
throw err.message;
});
}
function verifyIfUserExists(userEmail, userRede) {
}
async function init() {
try {
await messaging.requestPermission();
const deviceToken = await messaging.getToken();
const { user, rede } = await getCookieUserData();
sendTokenToServer(user, rede, deviceToken);
} catch (err) {
console.error(err);
}
}
if ('serviceWorker' in navigator && 'PushManager' in window) {
init();
} else {
console.warn('Mensagem PUSH não é suportado');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment