当我从文件A导出模块并导入文件B时,以及运行文件B时,出现此错误。与Firebase云Firestore有关。
const mailEvents = (startTime, endTime) => {
serverRef = db.collection("MailEvents");
let getDocs = serverRef
.where("timestamp", ">=", startTime)
.where("timestamp", "<=", endTime)
.get()
.then(querySnapshot => {
if (querySnapshot) {
let docs = querySnapshot.docs.map(doc => doc.data());
console.log(docs)
}
});
}
mailEvents();
module.exports.mailEvents = mailEvents;
并且main.js文件是
const module = require('./report.js')
module.mailEvents(1575225929,1575305012);
答案 0 :(得分:1)
问题在于,在模块中,在导出之前,您调用了mailEvents()
函数而没有任何参数,因此出现错误“无法使用“ undefined”作为Firestore值”,因为它试图查询集合startTime
和endTime
为未定义。换句话说,每次您需要此文件时,您实际上都在两次调用该方法。您还可以在此处简化几行。如果您将该文件更改为此,它应该起作用:
const mailEvents = (startTime, endTime) => {
db.collection("MailEvents")
.where("timestamp", ">=", startTime)
.where("timestamp", "<=", endTime)
.get()
.then(querySnapshot => {
if (querySnapshot && querySnapshot.length > 0) {
let docs = querySnapshot.docs.map(doc => doc.data());
console.log(docs)
}
});
};
module.exports = {
mailEvents
};