javascript - 错误:参数“value”的值不是有效的查询约束。不能将“未定义”用作 Firestore 值
问题描述
当我从文件 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);
解决方案
问题是,在您的模块中,就在导出之前,您在mailEvents()
没有任何参数的情况下调用该函数,因此出现错误“不能将“未定义”用作 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
};
推荐阅读
- python - 尝试创建循环遍历列表中的每个项目以在单独的列表中查找任何匹配项,然后替换匹配项
- javascript - 带有修改的查询字符串的 JS 重新加载页面
- c - fscanf 作为 while 语句
- javascript - Can't call a function inside another function Javascript
- django - How can i set pagination dynamically in Django Rest Framework?
- angular - Pass observable from one component to another via service
- sql - Combine CASE and IN
- texas-instruments - TI-Basic: Nspire Basic Function will show Too many arguments
- swift - ContainerVIew not equal to ScrollView
- javascript - How can this click() work from inside content script?