我试图从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()));
}
型
1条答案
按热度按时间o7jaxewo1#
通过执行
let ref = db.collection('post').doc(this.$route.params.id)
,您可以得到一个DocumentReference
,详见此处文档。然后在这个
DocumentReference
上执行get()
,你会得到一个DocumentSnapshot
,就像这里详细描述的那样,而不是一个QuerySnapshot
。因此,您应该通过
data()
方法(或者get(<field>)
获取特定字段)来获取doc数据,而不是通过snapshot.forEach(doc => {})
,QuerySnapshot
应该在QuerySnapshot
上使用。换句话说,做如下事情:
字符串