尽管声明了管理员,但显示“意外的令牌管理员”错误

时间:2019-08-02 00:48:41

标签: node.js firebase google-cloud-functions

我正在尝试执行一些顺序的异步操作。但出现错误:

  

解析错误:意外的令牌管理员

尽管我已经声明了该变量。这是我的代码

const admin = require('firebase-admin')
module.exports = {
   notificationCount: async (change, context) => {
    countRef.collection("notification").doc(context.params.reqID).get().then((requestDoc) => {
      console.log("Request Info " + requestDoc.data().reqUserName)
      return requestDoc.data();
    }).then((requestDocData) => {

      const token = await admin.database().ref("/UserInfo/" + notifiedUserID + "/token").once('value');
      console.log("UserInfo "+token);
      return null;

    }).catch((error) => {
      console.log("Loading failed: ", error);
    });
  }
}

2 个答案:

答案 0 :(得分:1)

这不是 firebase-admin 的问题,问题是:

  • 您正在使用没有异步的等待状态
  • 使用函数表达式语法而不是箭头回调

  • then()应该返回一个值或抛出

  • 使用之前的捕获

答案 1 :(得分:0)

您可能现在已经知道了,但是问题实际上不是admin,而是您正在使用async / await执行一个函数而未声明它是异步的,因此您只需要在该函数中放入async像这样的定义:

.then(async (requestDocData) => {

      const token = await admin.database().ref("/UserInfo/" + notifiedUserID + "/token").once('value');
      console.log("UserInfo "+token);
      return null;

    }