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
Firebase Firestore:如何查询集合中的多个动态值_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore:如何查询集合中的多个动态值

Firebase Firestore:如何查询集合中的多个动态值,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我正在开发一个“与朋友一起钓鱼”的应用程序,让用户为钓鱼创建共享记分牌。每个用户都可以为自己的日志记录分数。我目前正在一个名为catchLog的集合中保存所有分数。对于单个用户自己的日志,我只是查询记录的捕获在哪里有他的id 每个用户还可以邀请朋友。然后,每个用户都有一个朋友ID为的朋友子集合 但现在,我正在努力思考如何在过滤用户朋友的同时,显示一个带有catchLog中不同值的共享记分板 这是数据库结构: 用户集合: 这是friends子集合(这些ID与friends uid相同),此人只有

我正在开发一个“与朋友一起钓鱼”的应用程序,让用户为钓鱼创建共享记分牌。每个用户都可以为自己的日志记录分数。我目前正在一个名为catchLog的集合中保存所有分数。对于单个用户自己的日志,我只是查询记录的捕获在哪里有他的id

每个用户还可以邀请朋友。然后,每个用户都有一个朋友ID为的朋友子集合

但现在,我正在努力思考如何在过滤用户朋友的同时,显示一个带有catchLog中不同值的共享记分板

这是数据库结构:

用户集合:

这是friends子集合(这些ID与friends uid相同),此人只有一个朋友。-

以下是所有捕获物的收集:

我不确定如何处理这个问题。我认为不可能使用要在集合中匹配的值列表来调用firestore SDK

我想我应该在用户打开该视图时获得一个用户朋友ID,将其存储在一个数组中,然后对通过该数组的每个循环进行一个新的数据库调用,但这并不是一个好的解决方案,可能需要很长时间

我还想过使用一个云功能,在朋友之间维护一个记分牌,作为自己的收藏,每当有新的捕获时更新它,但这不起作用,因为一个新朋友可以加入该组,并且不会成为该列表的一部分


我没有写任何查询来尝试实现这一点,因为我相信我还没有想到的另一种方法能够实现这一点,因此我征求意见:)非常感谢

我认为维护提要列表是个好主意。一个云函数,每当用户成为新朋友时更新列表(该函数可以将新朋友的所有帖子添加到他们自己的列表中)

对于每一个新的或不友好的帖子,云功能都可以从列表中添加或删除帖子

出于某种原因,我读到这篇文章,你有一些群体的概念。重读它,你不知道,但会留下这个可能的灵感。根据你认为每个人会有多少朋友,也许你可以考虑添加每个朋友的UID而不是组ID:

您可以将捕获的每条鱼的所有者(我想您的byID字段)放在旁边,该所有者属于哪一组

所以,如果我在A、B和C组中,我未来的所有捕获都将包含A、B和C,当您按组查看时,只需查询数组中包含该组ID的所有捕获

当用户形成或加入一个组时,获取ID并将其添加到该用户的所有捕获中(您可以在过去X天内完成所有捕获,或者如果不需要旧数据并且您有好的渔民,则限制为最后N次捕获!)

要在用户离开组时保持此丢失更新,您只需调用哪些项目将该用户作为所有者,并使用包含其组的组数组。拔出那个组ID


你可以通过聆听新的捕获、加入一个组、离开一个组来完成这3个云功能。或更少的功能取决于您存储组的方式

谢谢你,丹,这很有帮助,我会尝试应用你的一些逻辑在这里,会让你知道它是如何进行的:)再次感谢没有问题,让我们知道它是否有帮助!嗨,丹,我本来不打算把这些作为团体,但实际上这样做对我来说更有意义,所以你的建议确实有帮助。我让用户创建新的排行榜,邀请朋友或删除朋友加入排行榜。在记录捕获时,用户还可以决定将捕获发送到板。board视图我可以让用户看到他/她订阅的所有board。这样,我甚至不需要云函数。所以,谢谢:)对我来说有点让人头痛,但现在它工作得很好。太好了!很高兴我能帮忙!