Estoy haciendo un PWA. Necesito guardar el token en Firebase, pero obtengo DOMException: Registration failed - push service error . El return messaging.getToken(); da el error que menciono. Si elimino la declaración de devolución, recibo un error de firebase, porque el token no está definido por razones obvias.
Aquí está mi código:
const messaging = firebase.messaging(); var perm; function InitializeFirebaseMessaging(){ messaging.requestPermission().then(function(){ console.log("Notification permission"); return messaging.getToken(); }).then(function(token){ console.log("Token: "+token); firestore.collection("tokens").doc(auth.currentUser.email).set({ mail: auth.currentUser.email, token: token })//.then(() => {perm=true;}); }).catch(function (reason){ console.log(reason); }); if(perm){ ChatRoom(); } return null; } messaging.onMessage(function (payload){ console.log("payload:"+payload); }); messaging.onTokenRefresh(function () { messaging.getToken() .then(function (newtoken) { firestore.collection("tokens").doc(auth.currentUser.email).set({ mail: auth.currentUser.email, token: newtoken })//.then(() => {perm=true;console.log("New Token : "+ newtoken);}); }) .catch(function (reason) { console.log(reason); }) });Entonces, mi pregunta es ¿por qué no puedo obtener mi token? ¿Por qué aparece el error mencionado anteriormente? Presiono "aceptar" cuando está pidiendo permiso y luego aparece el error.