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

Firebase Functions Gen2中Firestore Where查询执行失败排查

Firebase Cloud Functions Gen2 Firestore查询错误排查与解决方案

错误原因分析

  • Firestore实例初始化错误:初始化代码中const db = getFirestore未调用函数,db实际指向的是getFirestore函数本身,而非Firestore实例,后续操作会引发异常。
  • 查询方法调用顺序错误:appColRef.get().where("uid", "==", uid)的调用顺序颠倒,get()方法返回的是Promise对象,不具备where方法;正确逻辑应先通过where构建查询条件,再调用get()获取查询快照。

修正后的代码

1. 修正Firestore初始化代码

import {onRequest} from "firebase-functions/v2/https";
import * as logger from "firebase-functions/logger";
const { initializeApp } = require('firebase-admin/app');
const { getFirestore } = require('firebase-admin/firestore');
const { getFunctions} = require("firebase-admin/functions");

initializeApp();
// 调用getFirestore函数获取实例
const db = getFirestore();

2. 修正查询逻辑代码

if(uid !== ''){
    try{
        const questions:any = []
        const appColRef = db.collection("sessions");
        // 先调用where构建查询,再调用get()获取快照
        const querySnapshot = await appColRef.where("uid", "==", uid).get();

        querySnapshot.forEach((doc:any) => {
            const data = doc.data();
            questions.push(data.message);
        });

        logger.log("all questions are:", questions);

    }catch(err){
        console.log("Failed to fetch sessions:", err);
    }
}

内容的提问来源于stack exchange,提问作者Moblize IT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:44:57