我正在構建需要能夠接收推送通知的Chrome擴展程序。另一種選擇是每隔X秒輪詢一次服務器,但這看起來並不是一個很好的選擇。爲此,我選擇了Firebase。自定義的JWT令牌認證似乎已完成並正在運行。下一步是獲取註冊令牌,並將其發送到服務器。Chrome擴展程序和FCM提取註冊令牌
問題:
令牌似乎永遠是牽強:
var config = {
apiKey: "<KEY>",
authDomain: "<DOMAIN>",
messagingSenderId: "<SENDER_ID>"
};
var app = firebase.initializeApp(config);
var messaging = firebase.messaging(app);
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
if(user) {
// Update UI
fetchToken();
} else {
// no user is signed in
}
});
}
function fetchToken() {
messaging.requestPermission()
.then(function() {
messaging.getToken()
.then(function(currentToken) {
if (currentToken) {
sendRegistrationTokenToServer(currentToken);
} else {
console.log('No token available')
}
})
.catch(function(err) {
console.debug('An error occurred while retrieving token. ', err);
});
}).catch(function(err) {
console.log('Notification permissions denied.', err);
});
firebase.messaging().onTokenRefresh(function() {
messaging.getToken()
.then(function(refreshedToken) {
sendRegistrationTokenToServer(refreshedToken);
console.log('Token refreshed')
})
.catch(function(err) {
console.log('Unable to retrieve refreshed token', err);
});
});
}
$(document).ready(function() {
initApp();
// some other stuff
});
有誰知道爲什麼令牌是不是牽強?
開發人員控制檯中無法看到網絡活動(用於獲取令牌)。也沒有打印錯誤。不過,我確實看到getAccountInfo?key=<somekey>
的網絡活動,它帶有一個idToken
,雖然我不確定這是一個相關的請求(響應似乎沒有返回令牌)。
我遇到同樣的問題。它是'requestPermission'不返回任何東西。 –