如何设置Firebase云消息传递

时间:2019-06-23 09:37:05

标签: javascript firebase firebase-cloud-messaging firebase-notifications

我在gitlab中托管一个静态网站,我希望对订阅的浏览器启用网络推送通知。我想将订户令牌存储在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');**
    });

我的网站是this。我想通过Firebase云消息传递向订阅的用户发送通知,但是在该部分中,我只能找到ios / android选项。我将通知发送到令牌存储在Firebase实时数据库中的订阅用户的位置?现在由于某些原因,它没有存储令牌,因为我收到权限被拒绝的错误。

0 个答案:

没有答案