Javascript Firebase:使用异步/等待语法,如何捕获firestore文档id?
希望这不是很难解决 TLDR主要问题是如何使用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的目的地提供。这些单词中的每一个,可能包括也可能不包括翻译子集合 不幸的是,虽然
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()
一起使用,因为它不会返回承诺