我正在尝试执行一些顺序的异步操作。但出现错误:
解析错误:意外的令牌管理员
尽管我已经声明了该变量。这是我的代码
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);
});
}
}
答案 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;
}