繁体   English   中英

如果我在requestPermission之后立即调用Firebase的getToken,我在控制台中出错,为什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM