首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何跟踪firestore中的多对多关系?

如何跟踪firestore中的多对多关系?
EN

Stack Overflow用户
提问于 2021-08-26 17:23:57
回答 2查看 60关注 0票数 0

我正在尝试建立一个简单的程序,可以匹配同事(2-4人)每周吃午饭。匹配是基于在公司的任期(较少的终身员工与更多的终身员工匹配),但我正在努力找到一种方法来解释最近的匹配。这个想法是每周找到2-4个人一起吃午饭的新小组。关于如何在firestore中构建它,以便能够检查生成的人员组是否以前见过面,您有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 08:10:07

我通过创建一个带有map字段的会议集合解决了这个问题:

代码语言:javascript
运行
复制
meetings (collection)
  meetingId (document)
    +participants: {
      participantId1: true,
      participantId2: true
    }

在这一点上,我可以找到两个人以前是否见过面,方法是:

代码语言:javascript
运行
复制
meetingsCollection
  .where('participants.participantId1', '==', true)
  .where('participants.participantId2', '==', true)
票数 0
EN

Stack Overflow用户

发布于 2021-08-27 00:23:16

这并不是真正的“维护”多对多的情况。您所描述的内容更多地与为随机用户的基本会议生成的文档相关。

您可以在可用的用户文档上使用标记,并根据您的需要提示用户查找涉及他们作为参与者的活动/挂起会议。您可以使用字符串数组来执行此操作,其中的字符串是用户id

结构:

代码语言:javascript
运行
复制
Firestore:
  users (collection)
    userId (document)
      +available:true/false
  meetings (collection)
    randomMeetingId (document)
      +participants: ["userID"]
      +timeAt:timeOfMeeting

从那里,您将使用查询和云函数来基于userId和meeting.timeAt的当前会议参与者过期来维护这些会议。此外,您可以使用可用的用户和状态等对更改做出反应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68942940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档