gpt4 book ai didi

javascript - Firestore 无法获取空文档

转载 作者:数据小太阳 更新时间:2023-10-29 05:37:20 25 4
gpt4 key购买 nike

我有文档的集合,其中文档的 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 的列表?空的和非空的?如果我无法访问所有没有字段的文档,我如何添加字段?

最佳答案

listDocuments 方法可以检索所有具有子集合的文档,无论是否丢失。这是 page in the docs这解释了它。

您可能正在寻找这样的东西:

let collectionRef = firestore.collection('col');

return collectionRef.listDocuments().then(documentRefs => {
return firestore.getAll(...documentRefs);
}).then(documentSnapshots => {
for (let documentSnapshot of documentSnapshots) {
if (documentSnapshot.exists) {
console.log(`Found document with data: ${documentSnapshot.id}`);
} else {
console.log(`Found missing document: ${documentSnapshot.id}`);
}
}
});

您不会关心 docRef 是否存在。

然而,拥有空文档听起来并不是一个好的解决方案。您在用户可以为空但其下的消息仍然重要的架构中追求的逻辑是什么?也许如果您仍然需要访问它们,您可以添加一个 bool 变量来确定用户是否处于事件状态,而不是留下一个空白文档。

关于javascript - Firestore 无法获取空文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51121513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com