我正在尝试建立一个简单的程序,可以匹配同事(2-4人)每周吃午饭。匹配是基于在公司的任期(较少的终身员工与更多的终身员工匹配),但我正在努力找到一种方法来解释最近的匹配。这个想法是每周找到2-4个人一起吃午饭的新小组。关于如何在firestore中构建它,以便能够检查生成的人员组是否以前见过面,您有什么想法吗?
发布于 2021-09-03 08:10:07
我通过创建一个带有map字段的会议集合解决了这个问题:
meetings (collection)
meetingId (document)
+participants: {
participantId1: true,
participantId2: true
}
在这一点上,我可以找到两个人以前是否见过面,方法是:
meetingsCollection
.where('participants.participantId1', '==', true)
.where('participants.participantId2', '==', true)
发布于 2021-08-27 00:23:16
这并不是真正的“维护”多对多的情况。您所描述的内容更多地与为随机用户的基本会议生成的文档相关。
您可以在可用的用户文档上使用标记,并根据您的需要提示用户查找涉及他们作为参与者的活动/挂起会议。您可以使用字符串数组来执行此操作,其中的字符串是用户id
结构:
Firestore:
users (collection)
userId (document)
+available:true/false
meetings (collection)
randomMeetingId (document)
+participants: ["userID"]
+timeAt:timeOfMeeting
从那里,您将使用查询和云函数来基于userId和meeting.timeAt
的当前会议参与者过期来维护这些会议。此外,您可以使用可用的用户和状态等对更改做出反应。
https://stackoverflow.com/questions/68942940
复制相似问题