我正在尝试检索字段的特定值并将其存储在名为joiningScore的变量中。这使joinScore成为一个对象,其中包含一个值。我如何获得该价值。我尝试在.get(“ currentPos”)之后插入.then方法,但是它抛出一个错误,说docSnapshot.get()。然后不是函数。
var joiningScore = positionDoc.get().then((docSnapshot) => { return docSnapshot.get("currentPos"); })
const positionDoc = frebase.firestore().collection('position').doc('kY3k3lmnCIVG3Qi6LxUZ');
此处positionDoc是对Firestore中文档的引用。
答案 0 :(得分:1)
这是因为您要为变量分配Promise chain。
您需要等待get()
方法返回的Promise履行完毕才能获取值。有关更多详细信息,请参见此doc。
因此,遵循这些原则应该可以:
const positionDoc = firebase.firestore().collection('position').doc('kY3k3lmnCIVG3Qi6LxUZ');
var joiningScore;
positionDoc.get().then((docSnapshot) => {
joiningScore = docSnapshot.get("currentPos");
})
您还可以如下使用异步函数:
async function getJoiningScore() {
const positionDoc = firebase.firestore().collection('position').doc('kY3k3lmnCIVG3Qi6LxUZ');
const docSnapshot = await positionDoc.get();
return docSnapshot.get("currentPos");
}
请注意,此函数本身是异步的。