首页 > 解决方案 > 在关键字中使用firestore通过uids获取文档

问题描述

我在这里读到可以使用in关键字查询firestore,其中文档的字段匹配。我想匹配我收藏中文档的uid。是否可以获得仅具有某些 uid 的文档?

我已经尝试过.where('id', 'in', idsArray).where('uid', 'in', idsArray)只有某些文档 uid 存储在 idsArray 中)但无济于事。请帮忙。

标签: firebasegoogle-cloud-firestore

解决方案


如果你想基于一个 uids 的数组来查询这些 uid 值对应的所有文档,你可以使用Promise.all()如下:

const uids = ['abcde...', 'klmno...', 'wxyz...'];

const promises = uids.map(u => db.collection("yourcollection").doc(u).get());

Promise.all(promises).then(results => {

    //results is an array of DocumentSnapshots
    //use anny array method, like map or forEach      

    results.map(docSnapshot => {
            console.log(docSnapshot.data());
    });
});

推荐阅读