Firestore getAll()方法不接受FirebaseFirestore.DocumentReference []数组

时间:2018-04-11 13:26:34

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

我正在尝试在firestore云功能中使用getAll()方法。 问题是当我在getAll()中使用数组时,它会抛出一个错误:

  

[ts]类型的参数' DocumentReference []'不能分配给' DocumentReference'类型的参数。     财产' id'类型' DocumentReference []'中缺少。   const questionRefs:FirebaseFirestore.DocumentReference []

getAll()方法看来,它接受FirebaseFirestore.DocumentReference []数组,但它没有。 任何想法,问题出在哪里?

const questionRefs = new Array<FirebaseFirestore.DocumentReference>();
for (const questionID of questions) {
    const ref = admin.firestore().collection('question-bank').doc(questionID)
    questionRefs.push(ref);
}
// then use getAll
admin.firestore().getAll(questionRefs).then(snapshots=>{
    snapshots.forEach(snapshot=>{
        // snapshot.data
        console.log('A');
    })
}).catch(err=>console.log('B'));

1 个答案:

答案 0 :(得分:6)

根据API文档,getAll()的签名如下所示:

  

getAll(... documents)返回包含DocumentSnapshot数组的Promise

参数中的...documents语法表示您可以单独传递一堆DocumentReference对象(如文档中的示例代码所示)。但是如果你想传递一个数组,你必须使用spread operator将数组转换为单个参数:

admin.firestore().getAll(...questionRefs)