Firebase FCM空令牌

时间:2017-05-05 15:47:01

标签: html firebase firebase-cloud-messaging

我的浏览器中有一个(超级)基本FCM应用程序,并且在YouTube上关注Firecast后,我已经碰壁了。

如果我打算通过调用messaging.getToken()并将令牌记录到控制台来打印令牌,我会改为null

我的代码如下:

<script src="https://www.gstatic.com/firebasejs/3.9.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.9.0/firebase-messaging.js"></script>'

我只需要Firebase SDK的FCM部分(我已经尝试了所有这些部分)。

<script>
var config = {
    apiKey: "MY-API-KEY-IS-HERE-BUT-I-REMOVED-IT-FOR-STACKOVERFLOW",
    authDomain: "DOMAIN.firebaseapp.com",
    databaseURL: "https://DOMAIN.firebaseio.com",
    projectId: "PROJECTS_ID",
    storageBucket: "DOMAIN.appspot.com",
    messagingSenderId: "ID"
};

firebase.initializeApp(config);

const messaging = firebase.messaging();

messaging.requestPermission()
  .then(function(e=null) {
      console.log("Granted!"+e);
      return messaging.getToken();
  })
  .then(function(token) {
      console.log(token);
  })
      .catch(function(err) {
      console.log("Error! :: "+err);
  });
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

你做了一个错误的功能链,

2nd then()必须在getToken()之后,

<script>
var config = {
    apiKey: "MY-API-KEY-IS-HERE-BUT-I-REMOVED-IT-FOR-STACKOVERFLOW",
    authDomain: "DOMAIN.firebaseapp.com",
    databaseURL: "https://DOMAIN.firebaseio.com",
    projectId: "PROJECTS_ID",
    storageBucket: "DOMAIN.appspot.com",
    messagingSenderId: "ID"
};

firebase.initializeApp(config);

const messaging = firebase.messaging();

messaging.requestPermission()
  .then(function(e=null) {
      console.log("Granted!"+e);
      return messaging.getToken()
          .then(function(token) {
                console.log(token);
           }).catch(function(err) {
                console.log("Error! :: "+err);
           });
  })
</script>
</body>
</html>