Firestore + Cloud Functions:多个条件子句

我似乎无法在 Cloud 函数中组合两个“where”子句(Firestore 文档未更新)。如果有人能指出我哪里出错了,我将不胜感激。


return admin.firestore().collection('/events/')

  // .where('data', '<', new Date()).where('published', '==', true) // Doesn't work (multiple)

  // .where('data', '<', new Date()) // Works (single)

  // .where('published', '==', true) // Works (single)

  .get().then(

    (result: any) => {

      if (result.size > 0) {

        result.forEach(async (doc: any) => {

          await doc.ref.update({

            'published': false,

          })

        await sgMail.send(msg);

      })

    }

提前致谢!


三国纷争
浏览 202回答 1
1回答

慕哥6287543

来自官方文档:您只能对单个字段执行范围比较(<、<=、>、>=),并且在复合查询中最多可以包含一个 array_contains 子句。但是,在您的情况下,要将相等运算符 (==) 与范围或数组包含子句(<、<=、>、>= 或数组包含)结合使用,请确保创建复合索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript