每个then()应该返回一个值或抛出,答应/总是返回

时间:2019-12-04 16:30:00

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

我正在尝试使用node.js部署一个简单的firebase云功能以读取集合,但是在部署它时出现此错误:

每个then()应该返回一个值或抛出promise /总是返回

代码如下

const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);

let db = admin.firestore();

db.collection('collection').get().then((snapshot) => {
  snapshot.forEach((doc) => {
    return console.log(doc.id, '=>', doc.data());
  });
})
.catch((err) => {
  console.log('Error getting documents', err);
});

我尝试添加退货,但仍然出现错误。

return console.log(doc.id, '=>', doc.data());

return console.log('Error getting documents', err);

2 个答案:

答案 0 :(得分:2)

您正在返回一个函数内部:)它不算在内,您必须在此处添加它:

db.collection('collection').get().then((snapshot) => {
  return snapshot.forEach((doc) => {
    return console.log(doc.id, '=>', doc.data());
  });
})
.catch((err) => {
  console.log('Error getting documents', err);
});

答案 1 :(得分:0)

来自 Documentation(我自己未试过)

return db.collection('collection').get().then(snapshot => {
  snapshot.forEach(doc => {
    return console.log(doc.id, '=>', doc.data());
  });
})
.catch(err => {
  return console.log('Error getting documents', err);
});