Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

選擇數據結構

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

請記住,當您在 Cloud Firestore 中構建數據時,您有幾個不同的選擇:

  • 文件
  • 多個集合
  • 文檔中的子集合

考慮每個選項的優勢,因為它們與您的用例相關。本指南概述了分層數據的一些示例結構。

文檔中的嵌套數據

您可以在文檔中嵌套複雜的對象,例如數組或映射。

  • 優點:如果您希望在文檔中保留簡單、固定的數據列表,這很容易設置並簡化您的數據結構。
  • 限制:這不像其他選項那樣具有可擴展性,尤其是當您的數據隨時間擴展時。隨著列表變大或不斷增長,文檔也會增長,這會導致文檔檢索時間變慢。
  • 什麼是可能的用例?例如,在聊天應用程序中,您可以將用戶最近訪問的 3 個聊天室作為嵌套列表存儲在他們的個人資料中。
  • 情書
    • 姓名 :
      第一個:“阿達”
      最後:“洛夫萊斯”
      出生 : 1815
      房間:
      0:“軟件聊天”
      1:“名人”
      2:“著名的 SWE”

子集合

當您擁有可能隨時間擴展的數據時,您可以在文檔中創建集合。

  • 優點:隨著列表的增長,父文檔的大小不會改變。您還可以獲得對子集合的完整查詢功能,並且可以跨子集合發出集合組查詢
  • 限制:您不能輕易刪除子集合。
  • 什麼是可能的用例?例如,在同一個聊天應用程序中,您可能會在聊天室文檔中創建用戶或消息的集合。
  • _書籤科學
    • 軟件
      名稱:“軟件聊天”
      • 用戶
        • 情書
          第一個:“阿達”
          最後:“洛夫萊斯”
        • 進步
          第一個:“莎莉”
          最後:“騎”`


    • 天體物理學
      • ...

根級集合

在數據庫的根級別創建集合以組織不同的數據集。

  • 優點:根級集合有利於多對多關係,並在每個集合內提供強大的查詢。
  • 限制:隨著數據庫的增長,獲取自然分層的數據可能會變得越來越複雜。
  • 什麼是可能的用例?例如,在同一個聊天應用程序中,您可以為用戶創建一個集合,為房間和消息創建另一個集合。
  • 用戶
    • 情書
      第一個:“阿達”
      最後:“洛夫萊斯”
      出生 : 1815
    • 進步
      第一個:“莎莉”
      最後:“騎”
      出生 : 1951
  • 房間
    • 軟件
      • 消息
        • 消息1
          來自:“愛麗絲”
          內容 : ”...”
        • 消息2
          來自:“騎”
          內容 : ”...”