You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularFirestore查询where条件不匹配时else无输出问题求助

问题分析与解决
  • 问题根源:你的代码是在遍历查询结果的每个文档时判断单个文档是否存在,但当没有匹配的文档时,查询结果集是空的,forEach循环根本不会执行,所以else分支永远不会触发,自然看不到"No"的输出。

  • 修正方案:先判断整个查询结果是否为空,再处理单个文档(如果有的话)。修改后的代码如下:

this.angulfirestore.collection('client', ref => ref.where('name', '==', 'Karl')).get()
.subscribe(datas => {
  if (datas.empty) {
    console.log('No');
  } else {
    datas.forEach(el => {
      if (el.exists === true) {
        console.log('OK');
      }
    });
  }
})
  • 简化优化:QuerySnapshot返回的文档都是存在的,单个文档的exists判断其实多余,还可以进一步简化代码:
this.angulfirestore.collection('client', ref => ref.where('name', '==', 'Karl')).get()
.subscribe(datas => {
  datas.empty ? console.log('No') : console.log('OK');
  // 如果需要输出所有匹配文档的OK,就保留forEach:datas.forEach(() => console.log('OK'))
})

内容的提问来源于stack exchange,提问作者Zé-da-Véstia Lidia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:52:01