firestore then()函数在set()之后没有执行

时间:2018-04-24 18:32:10

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

我正在使用set函数在firestore中创建一个新文档。我想在set函数将数据推送到数据库之后使用文档数据。

            // Add each record to their respective heads
        let docRef = headCollectionRef.doc(data.headSlug).collection(recordsCollection)
            .doc(String(data.recordData.sNo))
        docRef.set(data).then(docSnap => {
            agreementData.push(
                docSnap.get().then(data => {
                    return data
                })
            )
        })

then()中没有任何内容正在执行。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:4)

set会返回Promise<void>,因此您无权访问then中的文档数据。

这种情况下,async / await将使您的代码更容易阅读。

async function cool() {
  const docRef = headCollectionRef.doc(...)

  await docRef.set(data)

  const docSnap = await docRef.get()

  agreementData.push( docSnap.data() )

}

https://firebase.google.com/docs/reference/js/firebase.firestore.DocumentReference#set