Javascript Firebase:使用异步/等待语法,如何捕获firestore文档id?

Javascript Firebase:使用异步/等待语法,如何捕获firestore文档id?,javascript,firebase,google-cloud-firestore,async-await,Javascript,Firebase,Google Cloud Firestore,Async Await,希望这不是很难解决 TLDR主要问题是如何使用async/await而不是then()语法。更具体地说,我如何访问已访问文档的docRef以返回该文档的id,以及所有其他数据 我从firestore数据库中检索了一系列Word对象 每一个单词都是这样的对象:{word:'Apple',ref:9IOGPbdfoURivbNfffwF,points:10} 我反复浏览这些单词,以获取它们的完整分类,这些分类在ref的目的地提供。这些单词中的每一个,可能包括也可能不包括翻译子集合 不幸的是,虽然

希望这不是很难解决

TLDR主要问题是如何使用
async/await
而不是
then()
语法。更具体地说,我如何访问已访问文档的docRef以返回该文档的
id
,以及所有其他数据


我从firestore数据库中检索了一系列Word对象

每一个单词都是这样的对象:
{word:'Apple',ref:9IOGPbdfoURivbNfffwF,points:10}

我反复浏览这些单词,以获取它们的完整分类,这些分类在
ref
的目的地提供。这些单词中的每一个,可能包括也可能不包括
翻译
子集合


不幸的是,虽然我可以成功返回
wordData
,但该文档不包含单词的ID。相反,我需要的ID是word文档本身的ID。我如何编写它,使我有一个
word
对象,该对象使用异步/等待语法包含所有word数据+文档的ID

const data = Promise.all(
      vocab.map(async (word: Word) => {
        const wordRef = await word.ref.get();
        const wordData = await wordRef.data();     <-- Problem is here.
 
        const docRef = firebaseFirestore
          .collection(`languages/${language}/vocabulary`)
          .doc(wordData.id)                        <-- What i'm trying to do, but id isn't there
          .collection('translations')
          .doc(translationLanguage);
    ...
)
const data=Promise.all(
vocab.map(异步(字:字)=>{
const wordRef=等待word.ref.get();
const wordData=wait wordRef.data();
data()
只返回文档中的字段。它不返回ID。您在
word.ref
中已经有了文档的ID

const id = word.ref.id;
另外,不需要将
wait
data()
一起使用,因为它不会返回承诺