![](/img/trans.png)
[英]Firebase Cloud Messaging's getToken() only works if I omit the usePublicVapidKey method, why?
[英]If I call Firebase's getToken right after requestPermission I get an error in the console, why?
如果我在requestPermission之后立即调用Firebase的getToken,我在大多数时间都会在控制台中出现错误。 这是我目前的代码:
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-messaging.js"></script>
<script>
var config = {
apiKey: "XXXXXXXXX",
authDomain: "XXXXXXXXX.firebaseapp.com",
databaseURL: "https://XXXXXXXXX.firebaseio.com",
projectId: "XXXXXXXXX",
storageBucket: "XXXXXXXXX.appspot.com",
messagingSenderId: "XXXXXXXXX"
};
firebase.initializeApp(config);
</script>
<script>
function notification_permission() {
messaging.requestPermission().then(function(permission) {
console.log('Notification permission granted', permission);
messaging.getToken().then(function(token) {
if(token) {
//update user token
console.log('Token acquired', token);
} else {
//you don't have permission to show notifications
}
}).catch(function(err) {
//retrieving token failed, analyze the error
console.error('Retrieving token failed', err);
});
}).catch(function(err) {
console.error('Unable to get permission to notify', err)
});
}
</script>
如果浏览器已经具有通知权限,我会调用notification_permission();
,然后我在控制台中没有任何问题地收到令牌 。 但是,如果这是用户第一次按“ 允许”以授予网站接收通知的权限,则会触发此错误(并非总是在大多数情况下):
POST https://fcm.googleapis.com/fcm/connect/subscribe 404 ()
Retrieving token failed e {code: "messaging/token-subscribe-failed", message: "Requested entity was not found.", stack: "FirebaseError: Requested entity was not found."}
Promise.catch (async)
Promise.then (async)
(anonymous) @ VM1243:1
有什么想法吗? 谢谢!
试试最新版本(4.13.0)。 我在发行说明中看到了对此的修复,现在它似乎对我有用。
https://firebase.google.com/support/release-notes/js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.