我想从Firebase数据库中获取Firebase函数中的单个值。但是,Promise永远不会返回并且链式方法从不执行。下面是从数据库Firebase函数从数据库获取单个值
function getFcmToken(username){
return admin.database().ref('tokens/{username}/fcmToken').once('value').then(snap => {
if(snap.exists()){
const token = Object.keys(snap.val());
console.log("FCM Token", token);
return token;
}
return [];
});
}
本来上面方法返回一个标记取一个值的方法,但我不知道它是,所以下面的方法没有得到执行。
function sendNotification(keyword, username){
return getFcmToken(username).then(token => {
if(token.length > 0){
//Notification Detail
let payload = {
data:{
keyword: keyword
}
};
return admin.messaging().sendToDevice(token, payload);
}
});
}
在控制台日志中,我看到的只有Promise pending。
如何更新上面的代码以返回单个值,看起来它正在返回一个数组?
谢谢
是你的参考路径是否正确? –
是的,路径是正确的,我验证了。我有另一个功能,正确写入该路径 –
我的意思是用户名被替换为单引号?我怀疑 –