Firestore查询其uid存在于列表中的所有文档

时间:2017-12-14 14:33:47

标签: android firebase google-cloud-firestore

我在ArrayList中有一个用户UID列表。

示例:

List<String> myUsersUids = new ArrayList<>();

现在,我想查询 myUsersUids 列表中存在UID字段值的所有用户文档。

修改 是否可以使用&#34; Where&#34;条件?所以我可以避免在列表上循环并分别查询每个文档..

例如: 有什么像......

    .whereExistsIn("userID", myUsersList) .. ?

这将帮助我将一个SnapShotListener添加到多个文档,而不是为每个文档循环和创建一个监听器。

谢谢你提前!

1 个答案:

答案 0 :(得分:1)

您可以使用firestore.getAll方法获取具有给定文档引用的所有firebase文档,您只需使用文档ID(现在:userIds)创建firebase文档引用。以下是使用给定userIds获取用户的Javascript代码:

let userIds = ['7Zzf082ExRLAWCJ6XZeE','random','OM3YmGKnPk2yZGEe2J02','random22'];
let userRefs = [];

userIds.forEach(qid => {
    console.log("Creating document reference of : ",qid);
    userRefs.push(admin.firestore().doc('users/'+qid));
});

admin.firestore().getAll(userRefs).then(users => {
    for(let i=0;i<users.length-1;i++){
        console.log("index : "+i+ " isExists : "+ users[i].exists);
    }
}

我从https://stackoverflow.com/a/48423626/5140519获取了参考资料。

如果您有任何疑问或有任何反馈意见,请与我们联系。谢谢!快乐的编码:)