Elige una estructura de datos
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Recuerda que, cuando estructuras tus datos en Cloud Firestore, puedes elegir entre diferentes opciones:
- Documentos
- Varias colecciones
- Subcolecciones dentro de documentos
Ten en cuenta las ventajas de cada opción en relación con tu caso de uso. En esta guía, se proporcionan algunas estructuras de ejemplo de datos jerárquicos.
Datos anidados en documentos
Puedes anidar objetos complejos como arrays o mapas dentro de los documentos.
- Ventajas: Si tienes listas simples y fijas de datos que deseas conservar en tus documentos, esto es fácil de configurar y optimiza tu estructura de datos.
-
Limitaciones: No es tan escalable como otras opciones, especialmente si tus datos se expanden con el tiempo. Con listas más grandes o en crecimiento, el documento también crece, lo que puede tener como resultado que los tiempos de recuperación de los documentos sean más lentos.
- ¿Cuál es un caso de uso posible? En una app de chat, por ejemplo, puedes almacenar las 3 salas de chat que un usuario visitó recientemente como una lista anidada en su perfil.
|
- class alovelace
- name :
first : "Ada"
last : "Lovelace"
born : 1815
rooms :
0 : "Software Chat"
1 : "Famous Figures"
2 : "Famous SWEs"
|
Subcolecciones
Puedes crear colecciones dentro de los documentos cuando tengas datos que podrían expandirse con el tiempo.
- Ventajas: A medida que crecen las listas, el tamaño del documento principal no cambia. También obtienes capacidades completas de consulta en las subcolecciones y puedes emitir consultas de grupos de colecciones en todas las subcolecciones.
- Limitaciones: No puedes borrar las subcolecciones con facilidad.
- ¿Cuál es un caso de uso posible? En la misma app de chat, por ejemplo, puedes crear las colecciones de usuarios o mensajes dentro de los documentos de la sala de chat.
|
- collections_bookmark science
- class software
name : "software chat"
- collections_bookmark users
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
sride
first : "Sally"
last : "Ride"`
- class astrophysics
|
Colecciones de nivel de raíz
Crea colecciones a nivel de raíz de la base de datos para organizar los conjuntos de datos dispares.
- Ventajas: Las colecciones a nivel de raíz son buenas para las relaciones de varios a varios y proporcionan consultas eficaces dentro de cada colección.
- Limitaciones: La obtención de los datos que son naturalmente jerárquicos puede llegar a ser cada vez más compleja a medida que crece la base de datos.
- ¿Cuál es un caso de uso posible? En la misma app de chat, por ejemplo, puedes crear una colección para usuarios y otra para salas y mensajes.
|
- collections_bookmark users
- class alovelace
first : "Ada"
last : "Lovelace"
born : 1815
- class sride
first : "Sally"
last : "Ride"
born : 1951
- collections_bookmark rooms
- class software
- collections_bookmark messages
- class
message1
from : "alovelace"
content : "..."
- class
message2
from : "sride"
content : "..."
|
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-16 (UTC)
[null,null,["Última actualización: 2025-08-16 (UTC)"],[],[],null,["\u003cbr /\u003e\n\nRemember, when you structure your data in Cloud Firestore, you\nhave a few different options:\n\n- Documents\n- Multiple collections\n- Subcollections within documents\n\nConsider the advantages of each option as they\nrelate to your use case. A few example structures for hierarchical data\nare outlined in this guide.\n\n\u003cbr /\u003e\n\nNested data in documents\n\nYou can nest complex objects like arrays or maps within documents.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** If you have simple, fixed lists of data that you want to keep within your documents, this is easy to set up and streamlines your data structure. - **Limitations:** This isn't as scalable as other options, especially if your data expands over time. With larger or growing lists, the document also grows, which can lead to slower document retrieval times. - **What's a possible use case?** In a chat app, for example, you might store a user's 3 most recently visited chat rooms as a nested list in their profile. | - class alovelace - name : first : \"Ada\" last : \"Lovelace\" born : 1815 rooms : 0 : \"Software Chat\" 1 : \"Famous Figures\" 2 : \"Famous SWEs\" |\n\nSubcollections\n\nYou can create collections within documents when you have data that might expand\nover time.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** As your lists grow, the size of the parent document doesn't change. You also get full query capabilities on subcollections, and you can issue [collection group queries](../query-data/queries) across subcollections. - **Limitations:** You can't easily delete subcollections. - **What's a possible use case?** In the same chat app, for example, you might create collections of users or messages within chat room documents. | - collections_bookmark science - class software name : \"software chat\" - collections_bookmark users - class alovelace first : \"Ada\" last : \"Lovelace\" - class sride first : \"Sally\" last : \"Ride\"\\` \u003cbr /\u003e \u003cbr /\u003e - class astrophysics - ... |\n\nRoot-level collections\n\nCreate collections at the root level of your database to organize disparate data\nsets.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** Root-level collections are good for many-to-many relationships and provide powerful querying within each collection. - **Limitations:** Getting data that is naturally hierarchical might become increasingly complex as your database grows. - **What's a possible use case?** In the same chat app, for example, you might create one collection for users and another for rooms and messages. | - collections_bookmark users - class alovelace first : \"Ada\" last : \"Lovelace\" born : 1815 - class sride first : \"Sally\" last : \"Ride\" born : 1951 - collections_bookmark rooms - class software - collections_bookmark messages - class message1 from : \"alovelace\" content : \"...\" - class message2 from : \"sride\" content : \"...\" |"]]