Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Java Firestore:如何在整个数据库中进行搜索?_Java_Firebase_Google Cloud Firestore - Fatal编程技术网

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数据库(CLASSROOM1、CLASSROOM2、CLASSROOM3…),并找到与用户输入的“矩阵”的对应关系

这里的目标是找到文档“userId”中的字段“matricule”,并读取其值,以便知道它属于哪个用户


多谢各位。我从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)