我正在构建javascript服务,我想从“集合名称”和“文档ID数组”的输入中从firestore中获取所有子集合文档详细信息。
请求有效负载调用我的服务:
{
root_collection_name: "root_collection",
"msgId": ['11','22','33','66'],
"subcollection_name": "message"
}
我需要搜索所有此msgId的所有子集合(所有文档的通用名称)文档。
我的消防仓库结构如下所示
collection:
document1:
subcollection:
document:
"val1":"red",
"val2":"blue",
"val3":"green"
document2:
subcollection:
document:
"val1":"apple",
"val2":"mango",
"val3":"grape"
document3:
..............
................
示例:
root_collection:
11:
aaa:
message:
"val1":"red",
"val2":"blue",
"val3":"green"
22:
bbb:
message:
"val1":"apple",
"val2":"mango",
"val3":"grape"
在这种情况下,我需要获取msgId“11”,“22”的数据,这些数据在firestore中可用,其他值应发送null。你能不能帮你帮忙,不知道我在这里错过了哪里。
这是我为此写的代码。
const input = {
"root_collection_name": "root_collection",
"msgId": ['11','22','33','66'],
"subcollection_name": "message"
}
const test = (input) => {
const query = firestore.collection(input.root_collection_name).where('id', 'array-contains-any', input.msgId);
query.get().then((querySnapshot) => {
querySnapshot.forEach((document) => {
document.ref.collection(input.subcollection_name).get().then((querySnapshot) => {
querySnapshot.forEach(doc => {
console.log('doc data',doc.data());
});
});
});
});
};
test(input);
如果将顶级文档的 ID 添加到子集合文档中,则可以使用 collectionGroup。
因此,从您的示例中,您将拥有:
root_collection:
11:
aaa:
message:
"root_id": "11", // <<-- new!
"val1":"red",
"val2":"blue",
"val3":"green"
22:
bbb:
message:
"root_id": "22", // <<-- new!
"val1":"apple",
"val2":"mango",
"val3":"grape"
您可以查询:
var msgs = firebase.firestore().collectionGroup('message')
.where('root_id', 'in', ['11','22']);
警告:这将查询任何和所有名为 message
的子集合。向模型中添加较新的子集合时,如果它们不是相同类型的“消息”,则可以选择其他名称。
我现在有一个firestore,看起来像这样: 我使用的是,我试图获取“报告”集合中的所有文档。 我可以得到一个报告: 但我无法得到整个子集合 这可能吗?我是新手,所以这可能是一个愚蠢的问题。 谢谢 编辑控制台中收到的错误消息是: 我不确定权限,我没有访问权限,但如果是权限问题,我很困惑,我可以从集合中获取一个文档,但找不到获取所有文档的方法
我正在使用Java开发一个Android应用程序,我使用firestore数据库,我有一个名为用户位置的集合,其结构类似于照片: 分贝 我的问题是,当一个用户改变他的位置或一个新用户进入一个已经存在的位置(其他用户有相同的位置)时,它会创建一个新文档(如在“oran, algerie”中)。当我添加新用户并更新文档时,我想使用,但问题是我无法以正常方式检索根集合的所有文档: 它返回null。我尝试
使用go和FireStore创建web应用程序。我遇到了一个奇怪的问题。如果使用NewDoc方法保存数据 我可以使用 现在,当我只想查找博客集合中的所有文档时,这是很棒的。但是我遇到了无法从blogs集合中查询特定blog的问题。我通过查看文档和保存类似的帖子来解决这个问题。 但是,由于我自己创建了docID,所以从整个集合中检索所有文档时使用
嗨,我从javascript和react-native开始,我花了几个小时试图解决这个问题。有人能告诉我如何从firestore收集处获得所有文件吗? 我一直在尝试这个: 日志1打印所有对象(一个接一个),但日志2没有定义,为什么?
我试图设置一个聊天应用程序,在其中你可以搜索随机的用户交谈。现在,firestore中的数据库结构如下: 集合“users”-文档“userid”-集合“conversations”-文档“conversationid”-字段“partner”,“lastmessage” 其次,我有一个集合“conversations”,其中包含对话中的所有消息。 我现在尝试做的是,当你按下一个按钮时,应用程序将
假设我有这种结构 其中和是集合,和是文档 有没有一种方法可以通过一个查询获得根文档中包含的所有内容<如果我这样问 我只得到字段。我想要的是B的所有文件 我基本上希望我的查询返回 是否可能或者我真的需要对每个集合进行多个查询:/? 假设我有一个代表用户配置文件的非常深的嵌套集合树,我的成本会像地狱一样上升,因为每次我加载用户配置文件时,我都有一个读取请求的乘数其中N是我的树的深度: /.