Created
April 20, 2019 12:32
-
-
Save claudiojunior-me/7bae497bca1a6f7c5a4009317bfd4e52 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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