我刚开始玩firebase云函数和firestore,但当我在firebase云功能中使用firestore时(如下代码所示(,它是return和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)
}
}
获得QuerySnapshot
是正常的,因为get()
方法返回一个用QuerySnapshot
解析的Promise。
由您生成要发送回云功能消费者的内容。
例如,可以使用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)
}
}