Firestore - 如何建模和查询 2 collections 的关系 - IOT 用例 - v2

Firestore - How to model and query relation of 2 collections - IOT use case - v2

延伸到我的问题

我现在看过一个关于此的视频,它推荐使用文档 ID 建模关系。 https://www.youtube.com/watch?v=jm66TSlVtcc 跳到 6:07

我想知道它在这种情况下是否可行(修改我原来问题中的示例以适应这个关于 firestore 关系的 youtube 推荐:

例如:我有 2 个不同的 collection - 跟踪和场地

跟踪 <-- collection

1. document(xyz123)
venueId = "abcd1234"
timestamp = 10/09/2019 10:00

2. document(xyz567)
venueId = "efgh3456"
timestamp = 10/09/2019 11:00

地点 <-- collection

1. document(abcd1234) <-- notice i shift the device_unique_identifier here instead
name = "room A"
// device_unique_identifier = "abcd1234" <-- this is unique name

2. document(efgh3456) <-- notice i shift the device_unique_identifier here instead
name = "room B"
// device_unique_identifier = "efgh3456" <-- this is unique name

主要问题: 我想查询文档 xyz123 并获取行中的场地名称。所以输出将是:

document(xyz123)
device_unique_identifier = "abcd1234"
timestamp = 10/09/2019 10:00
venue.name = "room A"

关于另一个可能的额外问题,在插入跟踪数据时,是否可以将场地数据作为 object 自动插入 firestore 后端而不需要查询场地数据?

Firebase 无法做到这一点。 Firebase 中没有 JOIN 的概念。如果数据位于两个单独的文档中,您将需要重新考虑如何存储数据(以便可以一次调用所有数据等)或进行所有调用以实现最终所需的输出。

您当然可以像现在这样存储数据,但是您不能查询一个文档来获取具有当前结构的输出。