亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在沒有外部節點名稱的情況下獲取內部節點中的 firebase 數據?

如何在沒有外部節點名稱的情況下獲取內部節點中的 firebase 數據?

白豬掌柜的 2023-01-06 10:59:00
我想從 ref 中的 firebase 讀取數據,("locations/{{someLocation}}/logs/{{someDevice}}") 但我不知道是否存在正確的表格,因為我需要使用“.on”來不斷聽到所有設備的變化,問題是我需要閱讀所有設備在所有位置的日志中,但我不需要其他信息,我只需要日志或特定設備中的信息,我知道我可以為每個設備調用一個回調“.on”,但我想要一個更干凈的制作它的表格和文檔中,對此沒有幫助。也許我可以調用這樣的方法firebase.database("locations/{eachLocation}/logs/{eachDevice}").ref().on...因為我不想要所有的設備,問題是我不知道是否有表格可以制作它謝謝。
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

聽起來您的數據嵌套太多了。Firebase 文檔有關于避免嵌套數據展平數據結構的明確部分,并提供了有關如何防止這種情況的提示。

乍一看,您至少需要兩個頂級列表:locationslocationLogs。在每個下,您擁有與現在相同的密鑰,但日志現在位于 under/locationLogs/$key而不是 under 下/locations/$key/logs。通過該更改,您可以獲取某個位置的日志,而無需獲取該位置的其他數據。


如果您不知道位置鍵,但不想獲取所有位置的日志,聽起來您嵌套的另一個級別太深了。Firebase 查詢在節點的平面列表上工作,并且無法跨多個級別的未知鍵進行搜索。如果要搜索所有位置的所有日志,則需要保留所有日志的平面列表。然后,您可以通過將位置 ID 添加到每個日志來將每個日志與其位置相關聯。

因此,這可能會導致以下結構:

logs: {

  "adjustableLight....1": {

    locationId: "DTZB35",

    date: 156...,"

    ...

  }

}


查看完整回答
反對 回復 2023-01-06
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

實時數據庫不支持您嘗試執行的操作。沒有通配符查詢或占位符。您必須能夠構建到您想要獲取其數據的節點的完整路徑。

考慮更改數據結構,以便您可以更輕松地找到所需的節點。在 nosql 類型的數據庫中,將數據復制到更容易查詢特定用例的結構中很常見。

實時數據庫不支持您嘗試執行的操作。沒有通配符查詢或占位符。您必須能夠構建到您想要獲取其數據的節點的完整路徑。

考慮更改數據結構,以便您可以更輕松地找到所需的節點。在 nosql 類型的數據庫中,將數據復制到更容易查詢特定用例的結構中很常見。


查看完整回答
反對 回復 2023-01-06
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號