Я размещаю статический сайт в gitlab и хочу включить push-уведомления в Интернете для подписанных браузеров. Я хотел бы хранить токен подписчиков в базе данных Firebase в реальном времени. У меня есть следующий код,
head.html
<script src="https://www.gstatic.com/firebasejs/3.7.4/firebase.js"></script>
<script src="notification.js"></script>
manifest.json
"gcm_sender_id": "103953800507"
notification.js
var config = {
apiKey: "YOUR FIREBASE PROJECT API KEY",
authDomain: "YOUR FIREBASE PROJECT AUTH DOMAIN",
databaseURL: "YOUR FIREBASE PROJECT DATABASE URL",
projectId: "YOUR FIREBASE PORJECT ID",
storageBucket: "YOUR FIREBASE STORAGE BUCKET URL",
messagingSenderId: "YOUR FIREBASE PROJECT SENDER ID"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.requestPermission()
.then(function() {
return messaging.getToken();
})
.then(function(token) {
// send rest call to add to database
$.ajax('https://example.firebaseio.com/pushtokens/'+token+'.json', {
method: 'PUT',
data: 'true',
error: function(err) {
}
});
})
.catch(function(err) {
console.log('Permission denied');
});
Обновлены правила БД
{
"rules": {
".read": "auth != null",
".write": "auth != true"
}
}
sw.js
importScripts("https://www.gstatic.com/firebasejs/3.7.4/firebase-app.js");
importScripts("https://www.gstatic.com/firebasejs/3.7.4/firebase-messaging.js");
firebase.initializeApp({
'messagingSenderId': 'YOUR FIREBASE PROJECT SENDER ID'
});
const messaging = firebase.messaging();
Я настроил это, но я получаю сообщение об ошибке в консоли, как,
В доступе отказано
указывает на
...
.then(function(token) {
// send rest call to add to database
$.ajax('https://news-pwa-76fc9.firebaseio.com/'+token+'.json', {
method: 'PUT',
data: 'true',
error: function(err) {
}
});
})
.catch(function(err) {
**console.log('Permission denied');**
});
Мой сайт , это . Я хочу отправить уведомление подписавшимся пользователям через облачные сообщения Firebase, но в этом разделе я могу найти только вариант ios / android. Куда я отправляю уведомление подписанным пользователям, чей токен хранится в базе данных Firebase в реальном времени? Теперь он по какой-то причине не хранит токен, поскольку я получаю сообщение об ошибке «Отказано в доступе».