我正在尝试从Firestore数据库中获取一条记录,该记录是我从路径中提取ID的,但似乎不起作用。
请您知道我在做什么错吗,
如果我运行以下代码
created() {
//fetch data from firestore
let ref = db.collection('post').doc(this.$route.params.id)
ref.get()
.then(snapshot => { //DocSnapshot
console.log(snapshot.data)
if (doc.exists) {
// doesnt run
console.log('test')
let post = snapshot.data()
} else {
// snapshot.data() will be undefined in this case
// also doesn't run
console.log("No such document!");
}
})
},
我在控制台中得到以下内容
function (options) {
validateBetweenNumberOfArgs('DocumentSnapshot.data', arguments, 0, 1);
options = validateSnapshotOptions('DocumentSnapshot.data', options);
return !this._document
? undefined
: this.convertObject(this._document.data, FieldValueOptions.fromSnapshotOptions(options, this._firestore._areTimestampsInSnapshotsEnabled()));
}
答案 0 :(得分:2)
通过let ref = db.collection('post').doc(this.$route.params.id)
,您将获得DocumentReference
,如文档here中所述。
然后在此get()
上执行DocumentReference
,您会得到一个DocumentSnapshot
(详细介绍here),而不是QuerySnapshot
。
因此,您应该通过data()
方法获取文档数据(或通过get(<field>)
获取特定字段),而不是通过在{{3 }}。
换句话说,请执行以下操作:
snapshot.forEach(doc => {})