Java Firestore:如何在整个数据库中进行搜索?
我希望你很好 我的数据库如下所示:Java Firestore:如何在整个数据库中进行搜索?,java,firebase,google-cloud-firestore,Java,Firebase,Google Cloud Firestore,我希望你很好 我的数据库如下所示: /CLASSROOM1[collection]->DATAS[document]->USERS[collection]->userdId[document]->[user data(field)] /CLASSROOM2[collection]->DATAS[document]->USERS[collection]->userdId[document]->[user data(field)] /CLASSROOM3[collection]->DATAS[do
- /CLASSROOM1[collection]->DATAS[document]->USERS[collection]->userdId[document]->[user data(field)]
- /CLASSROOM2[collection]->DATAS[document]->USERS[collection]->userdId[document]->[user data(field)]
- /CLASSROOM3[collection]->DATAS[document]->USERS[collection]->userdId[document]->[user data(field)]
多谢各位。我从Firestore开始不可能跨多个具有不同名称的集合执行单个查询。每个集合都需要自己的查询,您必须在客户端上合并这些查询的结果
唯一可以使用多个集合的查询类型是,它要求每个子集合必须具有相同的名称。不可能跨多个具有不同名称的集合执行单个查询。每个集合都需要自己的查询,您必须在客户端上合并这些查询的结果
唯一可以使用多个集合的查询类型是a,它要求每个子集合必须具有相同的名称。我认为这不是很有效。正如上面提到的@Doug,每个集合都需要自己的查询,这当然会清空您的口袋
最好的方法是创建一个不同的集合,其中包含作为文档的矩阵,并在该文档中为每个用户存储
{user id}
。然后,当您想要获取数据时,查询这个新集合以获取{user id}
。您知道用户ID是什么,现在您可以在Firestore数据库中获取有关该用户的任何信息。我认为这样做效率不高。正如上面提到的@Doug,每个集合都需要自己的查询,这当然会清空您的口袋
最好的方法是创建一个不同的集合,其中包含作为文档的矩阵,并在该文档中为每个用户存储{user id}
。然后,当您想要获取数据时,查询这个新集合以获取{user id}
。您知道什么是用户ID
,现在您可以在Firestore数据库中获取关于该用户的任何信息。我假设您有userId作为输入,并在相应的矩阵中找到wn。添加“userId”作为字段,然后可以对集合“USERS”执行集合组查询
我假设您有userId作为输入,并在相应的矩阵中使用wnat。添加“userId”作为字段,然后可以对集合“USERS”执行集合组查询
我明白,我会试试你的想法me@Delucis库克,让我们知道结果。很抱歉反应太晚。好的,这就是我所做的,基于你告诉我的想法,我创建了一个集合“MATRICULES”,其中包含名称为matricule名称的文档,每个文档都包含一个表示用户id的子用户id。@Delucis所以有什么有用的结果吗?@Delucis是正确的。我们首先要寻找那个特定矩阵的用户id,检查它是否存在,你是否得到了它。我明白,我会试试你的想法me@Delucis库克,让我们知道结果。很抱歉反应太晚。好的,这就是我所做的,基于你告诉我的想法,我创建了一个集合“MATRICULES”,其中包含名称为matricule名称的文档,每个文档都包含一个表示用户id的子用户id。@Delucis所以有什么有用的结果吗?@Delucis是正确的。我们首先要寻找那个特定矩阵的用户id,检查它是否存在,你是否得到了它。您想在所有userdId
文档中查找一个特定的矩阵
或想要所有矩阵
的值吗?@AlexMamo我想在userId中查找一个特定的矩阵。用户ID文档中只有一个矩阵字段,您说您需要这样的内容,在所有userId
文档中查找所有matricule
,其中matricule
等于某个值,对吗?我想知道条目矩阵对应的位置。我想知道矩阵位于哪个userId文档中?通过“条目矩阵对应的位置”你是什么意思?你想找到一个特定的矩阵
,还是想找到所有userdId
文档中所有矩阵
的值?@AlexMamo我想在userId中找到一个特定的矩阵。用户ID文档中只有一个矩阵字段,您说您需要这样的内容,在所有userId
文档中查找所有matricule
,其中matricule
等于某个值,对吗?我想知道条目矩阵对应的位置。我想知道矩阵在哪个用户ID文档中,通过“条目矩阵对应的位置”你是什么意思?
collectionGroup("USERS").where("userId", "==", userId)