javascript - 错误 : Value for argument "value" is not a valid query constraint. 无法使用 "undefined"作为 Firestore 值

标签 javascript node.js firebase google-cloud-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 值”,因为它是尝试使用未定义的 startTimeendTime 查询集合。换句话说,每次需要此文件时,实际上都会调用该方法两次。您还可以在此处简化几行。如果您将该文件更改为以下内容,它应该可以工作:

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

关于javascript - 错误 : Value for argument "value" is not a valid query constraint. 无法使用 "undefined"作为 Firestore 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59505269/

相关文章:

javascript - 使用 javascript 使用文件上传显示图像

firebase - 如何从 Firebase 控制台中删除 Google 项目?

firebase - 使用 Flutter 将 Firebase token 转换为字符串

javascript - 无法从外部访问 ember-pikaday onSelection 中的日期

javascript - Node.js 对象实例化是否为每个用户创建一个对象?

javascript - 仅从表格中选择所有复选框,而不是其他复选框

javascript - Node.js:将 markdown 转换为 HTML,然后将特定内容包装在 <section> 标签中

node.js - 使用 Google 的 reCAPTCHA 进行功能测试 Node/Express 应用程序

Javascript并行运行两个循环

android - 如何为firebase数据库中的所有子数据设置值?