我刚刚开始使用Firebase Cloud函数和Firestore,但是当我在Firebase Cloud函数(如以下代码)中使用Firestore时,它是返回值和QuerySnapshot而不是返回数据。如果有人以前遇到过此问题并已解决,请告诉我。这也将帮助我解决此问题。
谢谢。
export async function allRestaurants(req: Request, res: Response) {
try {
// const { id } = req.params
const restaurantsRef = admin.firestore().collection('restaurants');
const snapshot = await restaurantsRef.get();
console.log(">>>>>>>>>", snapshot);
return res.status(200).send({ data: { restaurants: snapshot } })
} catch (err) {
return handleError(res, err)
}
}
答案 0 :(得分:2)
您通常会收到QuerySnapshot
,因为get()
方法会返回一个以QuerySnapshot
解析的Promise。
由您自行决定要生成要发送回Cloud Function使用者的内容。
例如,您可以使用forEach()
方法在QuerySnapshot
上循环,或者如下图所示,使用docs
数组。
export async function allRestaurants(req: Request, res: Response) {
try {
// const { id } = req.params
const restaurantsRef = admin.firestore().collection('restaurants');
const snapshot = await restaurantsRef.get();
const responseContent = snapshot.docs.map(doc => doc.data());
return res.status(200).send({ data: { restaurants: responseContent } })
} catch (err) {
return handleError(res, err)
}
}