首页 > 解决方案 > 使用条件时 doc.data() 不是函数

问题描述

fetchPlaceDetail() {
    this.isLoading = true;
    getPlaceDetail()
    .where("placeId", "==", "p002")
        .onSnapshot(doc => {
            const { placeName, description, todo } = doc.data();
            this.placeName = placeName;
            this.description = description;
            this.todo = todo;
            this.isLoading = false
        })
}

显示这样的错误

如果我使用.doc('docId')而不是.where("placeId",'==',"p002")

标签: reactjsreact-nativegoogle-cloud-firestore

解决方案


看起来文档是一个集合,而不是单个文档。

你应该运行类似的东西:

fetchPlaceDetail() {
this.isLoading = true;
getPlaceDetail()
.where("placeId", "==", "p002")
    .onSnapshot(docs => {
        docs.forEach(doc => {
            const { placeName, description, todo } = doc.data();
            this.placeName = placeName;
            this.description = description;
            this.todo = todo;
            this.isLoading = false
        })

    })
}

firebase / firestore docs查询不工作 - javascript


推荐阅读