如何以多对多关系从 Firebase Cloud Firestore 构造和查询数据?
我有公司和承包商。一个承包商可以为多个公司工作,一个公司可以有多个承包商。这是一个简单的多对多关系。我希望能够回答有关公司和承包商的问题:
给定一家公司,他们是当前的承包商。
给定承包商他们为什么公司工作。
在 Cloud Firestore 中构建数据的正确方法是什么?
最佳答案
您可以拥有带有 map 字段的承包商项目,该字段的键作为公司键,并且值可以是 true 或时间戳以帮助订购。
以及具有以承包商键为键和一些值的 map 字段的公司。
https://firebase.google.com/docs/firestore/solutions/arrays 中提到了这种方法,当您尝试过滤和排序时...
Contractors
companies
idCompany1: timestamp
idCompany2: timestamp
idCompany3: timestamp
Companies
contractors
idContractor1: timestamp
idContractor2: timestamp
在这种情况下,您可以像该公司的承包商或该承包商的公司一样进行任何查询。
像这样:
fireStore.collection("Companies").whereField("contractors." + idContractor, isGreaterThan: 0).order(by: "contractors." + idContractor, descending: true)
是的,您必须在任何任务中更新这两个地方
希望这可以帮助!
关于Firebase Cloud Firestore 多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46625654/