Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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获取与值数组中的项匹配的任何值_Javascript_Google Cloud Firestore - Fatal编程技术网

Javascript Firestore获取与值数组中的项匹配的任何值

Javascript Firestore获取与值数组中的项匹配的任何值,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,在坚持最佳实践的同时,如何使用firestore进行一些关系查询,我面临着一点心理障碍。我正在创建一个feed功能,您可以在其中查看来自朋友的帖子feed。基本上,我的数据结构如下所示: Friends (collection) -friend_doc ...data friends_uid: [uid1, uid2] Posts (collection) -post_doc ...data posted_by: uid2 基本上,我正在进行查询,以获取friends\u u

在坚持最佳实践的同时,如何使用firestore进行一些关系查询,我面临着一点心理障碍。我正在创建一个feed功能,您可以在其中查看来自朋友的帖子feed。基本上,我的数据结构如下所示:

Friends (collection)
-friend_doc
  ...data
  friends_uid: [uid1, uid2]

Posts (collection)
-post_doc
  ...data
  posted_by: uid2
基本上,我正在进行查询,以获取friends\u uid包含我的uid(本例中为uid1)的所有好友。然后,一旦我将所有好友uid映射到一个数组,我想进行firestore查询,以获取POST_by字段等于该好友uid数组中任何uid的帖子。我还没能制造出这样的东西

我知道在friends uid的字符串数组中循环并对每个uid进行查询似乎是最方便的,如:

  listOfUids.forEach(async (item) => {
    const postQuerySnapshot = await firestore()
      .collection('posts')
      .where('uid', '==', item)
      .get();
    results.push(postQuerySnapshot.docs);
  });

但这对于分页和限制数据来说是非常有问题的,因为我可能会收到大量的帖子。我可能只是对这段代码太深入,缺少一个明显的解决方案,或者我的数据结构有点缺陷。如有任何见解,将不胜感激

我认为您正在寻找处于状态的
。这样,您最多可以传递10个值,它将返回字段与这些值中任何一个匹配的所有文档

有关这方面的更多信息,请参阅上的Firebase文档


如果您有10个以上的UID,您仍然需要执行多个查询并在客户端合并结果。

我认为您正在寻找处于
状态的
。这样,您最多可以传递10个值,它将返回字段与这些值中任何一个匹配的所有文档

有关这方面的更多信息,请参阅上的Firebase文档


如果您有10个以上的UID,您仍然需要执行多个查询并在客户端合并结果。

对于任何正在研究如何在firestore中实现类似“提要”类型功能的人,我最终解决了这个问题:

我在我的数据结构中添加了一个users\u feed集合以及posts集合,并处理在云函数内部生成feed的问题。users_提要集合充当中介,因此客户端只需要从中提取数据,而不需要生成提要所有的重载都发生在云功能中

在云功能中,每当发布(onCreate)或更新(onUpdate)帖子时,它都会获取发布该帖子的人的好友列表,并使用批写将其写入用户的feed集合中的所有feed


我发现另一篇文章在提出结构时非常有用:

对于任何正在研究如何在firestore中实现类似“提要”类型功能的人来说,我最终解决了这个问题:

我在我的数据结构中添加了一个users\u feed集合以及posts集合,并处理在云函数内部生成feed的问题。users_提要集合充当中介,因此客户端只需要从中提取数据,而不需要生成提要所有的重载都发生在云功能中

在云功能中,每当发布(onCreate)或更新(onUpdate)帖子时,它都会获取发布该帖子的人的好友列表,并使用批写将其写入用户的feed集合中的所有feed

我发现另一篇文章在提出结构时非常有用: