在Google上执行操作时无法获取从Firestore中的子集合中获取的数据

时间:2019-02-08 08:42:32

标签: node.js asynchronous google-cloud-firestore

我正在使用subcollectionFirestore中的nodejs正确地获取数据。数据以firebase console输出,所以可以。但是,即使从数据库中提取了数据,该数组也始终为空。我的Promise写作有问题吗?

 async fetchSubcollectionDocuments() {
        const sub = this.conv.user.profile.payload.sub;
        let ref = await db.collection('resource').doc(String(sub))
        let array = [];
        return ref.getCollections().then(collections => {
            console.log('collections?')
            collections.forEach(async collection => {
                console.log('subcollection?')
                let snapshot = await collection.where('query', '==', false).get()
                snapshot.forEach(doc => {
                    console.log('data?')
                    // here data exists
                    console.log(doc.id, '=>', doc.data());
                    // here data should be added 
                    array.push(doc.data())
                });
                // here array is always returned empty!!!!!
               return array
            })
        })
    }

正确访问和提取数据后,数组始终为空。获取的数据应添加到数组中并返回数组。在上面的代码中,这是不成功的。

我正在以这种方式使用该函数。在异步函数内部

    let array = await fetchSubcollectionDocuments()

0 个答案:

没有答案