我试图从firestore使用firebase函数gen2拉一个集合。我的代码看起来像下面
const { initializeApp } = require('firebase-admin/app');
const { getFirestore } = require('firebase-admin/firestore');
const { getDocs} = require("firebase-functions/v2/firestore");
initializeApp();
const db = getFirestore();
const cors = require('cors')({origin:true});
export const getReviews = onRequest(async(request, response) => {
cors(request, response, async() => {
logger.info("getReviews logging!", {structuredData: true});
const reviews:any = []
const appRef = db.collection("feedback");
const appQuery = db.query(appRef);
const querySnapshot = await getDocs(appQuery);
querySnapshot.forEach((doc:any) => {
let data:any
data = doc.data()
reviews.push(data)
});
response.send(reviews);
});
});
字符串
在运行此失败与错误查询不是一个功能.
2条答案
按热度按时间9avjhtql1#
在撰写本文时,用于Firebase的Node SDK仍然使用命名空间的API语法。对于
firebase-admin
SDK,这是由@google-cloud/firestore
Client SDK提供的。query()
是随Firebase Cloud Firestore Modular SDK引入的,在Node SDK中不可用。要更正代码,请替换以下行:
字符串
与
型
在某种程度上,您可以参考Modular SDK Upgrade Guide并使用它来降低您对客户端代码的熟悉程度。
注意:
firebase-functions/v2/firestore
用于定义第二代Firestore Cloud Functions,不用于访问您的Firestore数据库。这是firebase-admin/firestore
的责任。js4nwp542#
要在firebase函数v2中查询集合,您应该使用
await db.collection("feedback").where("user", "==", "bob").get()