Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firestore can';我不能得到空文件_Javascript_Google Cloud Firestore - Fatal编程技术网

Javascript Firestore can';我不能得到空文件

Javascript Firestore can';我不能得到空文件,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,我有一个文档集合,其中文档的id是用户id。 让我们调用这些用户文档 每个“用户文档”都包含聊天信息的子集合。但并非所有“用户文档”都包含任何字段(数据,子集合除外) 我不想返回集合中没有任何字段但有子集合的所有文档,但我觉得这是不可能的 var allUserDocs = {}, count = 0, users = firestore.collection("users"); users.get().then(snapshot => { snapshot.f

我有一个文档集合,其中文档的id是用户id。 让我们调用这些用户文档

每个“用户文档”都包含聊天信息的子集合。但并非所有“用户文档”都包含任何字段(数据,子集合除外)

我不想返回集合中没有任何字段但有子集合的所有文档,但我觉得这是不可能的

var allUserDocs = {}, 
    count = 0,
    users = firestore.collection("users");

users.get().then(snapshot => {
    snapshot.forEach(doc => {           
        count++;
        allUserDocs[count] = doc.data();            
    });

    allUserDocs.count = count;
    res.status(200).send(allUserDocs);          
})
此代码仅返回包含字段的文档,而不返回仅包含子集合的文档?有没有办法把所有的钱都还回来


如何获取集合中所有文档ID的列表?空的和非空的?如果我无法访问所有没有字段的文档,如何向它们添加字段?

使用
doc.id

users.get().then(snapshot => {
    snapshot.forEach(doc => {           
        count++;
        allUserDocs[doc.id] = doc.data();            
    });

    allUserDocs.count = count;
    res.status(200).send(allUserDocs);          
})
有一个listDocuments方法可以检索所有包含子集合的文档,无论是否丢失。下面是解释它的例子

您可能正在寻找类似的内容:
let collectionRef=firestore.collection('col');
返回collectionRef.listDocuments()。然后(documentRefs=>{
返回firestore.getAll(…documentRefs);
})。然后(documentSnapshots=>{
for(让documentSnapshot成为documentSnapshot的快照){
if(documentSnapshot.exists){
log(`Found document with data:${documentSnapshot.id}`);
}否则{
log(`find missing document:${documentSnapshot.id}`);
}
}

});我已经试过了,我仍然只返回定义了任何字段的文档。所有其他文档都被忽略(即使它们有一个子集),您可以尝试在每个文档中放置至少一个字段,例如HasNoMeStudio:TRUE或可能不考虑在第一个PASS中使用子集合。PS似乎已经设置了HTTP端点来读取集合,我认为这只是一个反模式。关键是削减中介机构,并要求客户直接向Firebase索取数据。目前我的经验是,Firebase对于削减中介机构来说太麻烦了,我尝试过,但在经历了许多挫折后,我放弃了。至少这样,现在我知道我的代码库是安全和稳定的,无论如何,这是离题的,但无论如何,谢谢!)我觉得它们是firestore API中的一个“showMissing”功能,用于显示所有没有数据的文档。Bu是否可以在nodejs集合查询上设置此标志,以便快照显示所有空文档?我需要获取所有空文档的路径。您找到列出空文档的解决方案了吗?