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 類型的數據庫中,將數據復制到更容易查詢特定用例的結構中很常見。
添加回答
舉報