# #javascript #reactjs #firebase #firebase-cloud-messaging #token
Вопрос:
Я делаю PWA. Мне нужно сохранить токен в firebase, но я получаю DOMException: Registration failed - push service error
. Это return messaging.getToken();
приводит к ошибке, о которой я упоминал. Если я удалю оператор return, я получу сообщение об ошибке от firebase, потому что токен не определен по очевидным причинам.
Вот мой код:
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);
})
});
Итак, мой вопрос в том, почему я не могу получить свой токен, почему я получаю ошибку, упомянутую выше? Я нажимаю «принять», когда он запрашивает разрешение, и после этого я получаю сообщение об ошибке.