【问题标题】:Each then() should return a value or throw, promise/always-return每个 then() 应该返回一个值或抛出,promise/always-return
【发布时间】:2019-12-04 16:30:00
【问题描述】:

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

每个 then() 都应该返回一个值或抛出 promise/always-return

代码如下

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);

【问题讨论】:

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


【解决方案1】:

你在一个函数内部返回 :) 这不算数,你必须在这里添加它:

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);
});

【讨论】:

    【解决方案2】:

    来自 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);
    });
    

    【讨论】:

      猜你喜欢
      • 2018-09-11
      • 1970-01-01
      • 2019-06-26
      • 2019-02-19
      • 2018-09-25
      • 1970-01-01
      • 2020-04-02
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多