firebase 函数中的 firestore where 子句无法执行

问题描述 投票:0回答:1

我正在尝试从与下面的字段/属性值之一匹配的集合中获取一些文档

 if(uid !== ''){
            try{
                const questions:any = []
                const appColRef = db.collection("sessions"); // best practice to use "ColRef" instead of just "Ref"
                const querySnapshot = await appColRef.get().where("uid", "==", uid)
    
                querySnapshot.forEach((doc:any) => {
                    let data:any 
                    data = doc.data()
                    questions.push(data.message)
                });

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

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

我如何收到错误

Failed to fetch sessions: TypeError: appColRef.get(...).where is not a function

我正在使用第 2 代 Firebase 函数,如下

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();
const db = getFirestore
firebase google-cloud-firestore google-cloud-functions
1个回答
0
投票

你应该这样做

const querySnapshot = await appColRef.where("uid", "==", uid).get();

appColRef.where("uid", "==", uid)
定义了一个
Query
,您可以在其上调用
get()
方法。

© www.soinside.com 2019 - 2024. All rights reserved.