diff --git a/express-server/public/firebase-messaging-sw.js b/express-server/public/firebase-messaging-sw.js new file mode 100644 index 00000000..a8ace617 --- /dev/null +++ b/express-server/public/firebase-messaging-sw.js @@ -0,0 +1,25 @@ +// Give the service worker access to Firebase Messaging. +// Note that you can only use Firebase Messaging here, other Firebase libraries +// are not available in the service worker. +importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js'); +importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js'); + +// Initialize the Firebase app in the service worker by passing in the +// messagingSenderId. +firebase.initializeApp({ + 'messagingSenderId': 'YOUR-SENDER-ID' +}); + +// Retrieve an instance of Firebase Messaging so that it can handle background +// messages. +const messaging = firebase.messaging(); + + + +messaging.setBackgroundMessageHandler(payload => { + const title = payload.data.title + const options = { + body: payload.data.text + } + return self.registration.showNotification(title, options) +}) \ No newline at end of file diff --git a/express-server/public/javascripts/ajax.js b/express-server/public/javascripts/ajax.js index d542eafb..6d20e964 100644 --- a/express-server/public/javascripts/ajax.js +++ b/express-server/public/javascripts/ajax.js @@ -6,11 +6,13 @@ var config = { projectId: "test-667ca", storageBucket: "test-667ca.appspot.com", messagingSenderId: "221332577314" -}; + }; + firebase.initializeApp(config); + $(document).ready(function() { firebase.auth().onAuthStateChanged(async function(user){if(user){firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idtoken) { console.log("/shoppinglistx idtoken:", idtoken); diff --git a/express-server/public/javascripts/firebase-app.js b/express-server/public/javascripts/firebase-app.js new file mode 100644 index 00000000..8c278144 --- /dev/null +++ b/express-server/public/javascripts/firebase-app.js @@ -0,0 +1,32 @@ + +// Initialize Firebase +// const firebaseconfig = { +// apiKey: "AIzaSyCuvwf78cmSDoZ2yS4XxHZhnjUn7yIHYfw", +// authDomain: "test-667ca.firebaseapp.com", +// databaseURL: "https://test-667ca.firebaseio.com", +// projectId: "test-667ca", +// storageBucket: "test-667ca.appspot.com", +// messagingSenderId: "221332577314" +// }; +// firebase.initializeApp(firebaseconfig); + + + +var msg = firebase.messaging(); +msg.requestPermission() +.then(function(){ + console.log("Zugriff auf msg") + return msg.getToken(); +}) +.then(token => { + console.log("MSG TOKEN: ", token) + +}) +.catch(err => { + console.error("Msg Error: ", err) +}) + +msg.onMessage(payload => { + const title = payload.data.title + new Notification(title, { body: payload.data.text}); + }) \ No newline at end of file diff --git a/express-server/routes/index.js b/express-server/routes/index.js index e7938501..152e1771 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -27,6 +27,29 @@ var firebaseAdmin = admin.initializeApp({ databaseURL: 'https://test-667ca.firebaseio.com' }); +//Push +router.get('/push/:msgtoken', function (req, res, next) { + var message = { + data: { + title: 'Nachricht', + text: 'Die Einkaufsliste wurde geupdated' + } + }; + + const token = req.params.msgtoken + firebaseAdmin.messaging().sendToDevice(token, message) + .then(function(response) { + // See the MessagingDevicesResponse reference documentation for + // the contents of response. + console.log('Successfully sent message:', response); + }) + .catch(function(error) { + console.log('Error sending message:', error); + }); + + +}); + // Login und Dash router.get('/', function(req, res, next) { @@ -35,8 +58,8 @@ router.get('/', function(req, res, next) { router.get('/dash/:idtoken', function(req, res, next) { - - var token = req.params.idtoken; + // const msgtoken = req.params.msgtoken; + const token = req.params.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(function(decodedToken) { @@ -48,7 +71,9 @@ router.get('/dash/:idtoken', function(req, res, next) { }).catch(function(error) { console.log(error) }); - + + + res.render('dash'); }); diff --git a/express-server/views/dash.ejs b/express-server/views/dash.ejs index 52c499d0..88069439 100644 --- a/express-server/views/dash.ejs +++ b/express-server/views/dash.ejs @@ -6,6 +6,7 @@ +
@@ -112,5 +113,6 @@ +