2 回答
TA贡献1798条经验 获得超3个赞
听起来您的数据嵌套太多了。Firebase 文档有关于避免嵌套数据和展平数据结构的明确部分,并提供了有关如何防止这种情况的提示。
乍一看,您至少需要两个顶级列表:locations
和locationLogs
。在每个下,您拥有与现在相同的密钥,但日志现在位于 under/locationLogs/$key
而不是 under 下/locations/$key/logs
。通过该更改,您可以获取某个位置的日志,而无需获取该位置的其他数据。
如果您不知道位置键,但不想获取所有位置的日志,听起来您嵌套的另一个级别太深了。Firebase 查询在节点的平面列表上工作,并且无法跨多个级别的未知键进行搜索。如果要搜索所有位置的所有日志,则需要保留所有日志的平面列表。然后,您可以通过将位置 ID 添加到每个日志来将每个日志与其位置相关联。
因此,这可能会导致以下结构:
logs: {
"adjustableLight....1": {
locationId: "DTZB35",
date: 156...,"
...
}
}
TA贡献1911条经验 获得超7个赞
实时数据库不支持您尝试执行的操作。没有通配符查询或占位符。您必须能够构建到您想要获取其数据的节点的完整路径。
考虑更改数据结构,以便您可以更轻松地找到所需的节点。在 nosql 类型的数据库中,将数据复制到更容易查询特定用例的结构中很常见。
实时数据库不支持您尝试执行的操作。没有通配符查询或占位符。您必须能够构建到您想要获取其数据的节点的完整路径。
考虑更改数据结构,以便您可以更轻松地找到所需的节点。在 nosql 类型的数据库中,将数据复制到更容易查询特定用例的结构中很常见。
添加回答
举报