En esta guía de inicio rápido, verás cómo configurar la edición Enterprise de Cloud Firestore, agregar datos y, luego, ver los datos que acabas de agregar en Firebase console con las bibliotecas cliente del servidor para C#, Go, Java, Node.js, PHP, Python y Ruby.
Puedes usarlas para configurar entornos de servidor con privilegios y acceso completo a tu base de datos.
Crea una base de datos de Cloud Firestore
Si aún no lo hiciste, crea un proyecto de Firebase. Para ello, en Firebase console, haz clic en Agregar proyecto y, luego, sigue las instrucciones en pantalla para crear un proyecto de Firebase o agregar servicios de Firebase a un proyecto de Google Cloud existente.
Abre tu proyecto en Firebase console. En el panel izquierdo, expande Compilación y, luego, selecciona Base de datos de Firestore.
Haz clic en Crear base de datos.
Selecciona una ubicación para tu base de datos.
Si no puedes seleccionar una ubicación, significa que ya se configuró la "ubicación para los recursos predeterminados de Google Cloud" de tu proyecto. Algunos de los recursos de tu proyecto (como la instancia predeterminada de Cloud Firestore) comparten una dependencia de ubicación común, y su ubicación se puede establecer durante la creación del proyecto o en la configuración de otro servicio que comparte esta dependencia de ubicación.
Selecciona un modo de inicio para tu Cloud Firestore Security Rules:
- Modo de prueba
Es el modo recomendado si recién comienzas a usar las bibliotecas cliente para dispositivos móviles y la Web, pero permite que todos lean y reemplacen tus datos. Después de realizar las pruebas, asegúrate de revisar la sección Protege tus datos.
Si quieres comenzar a usar la Web, las plataformas de Apple o el SDK de Android, selecciona el modo de prueba.
- Modo de producción
Rechaza todas las lecturas y escrituras de clientes móviles y web. Los servidores de aplicación autenticados (C#, Go, Java, Node.js, PHP, Python o Ruby) aún pueden acceder a tu base de datos.
Para comenzar con la biblioteca cliente de servidor C#, Go, Java, Node.js, PHP, Python o Ruby, selecciona el modo de producción.
El conjunto inicial de Cloud Firestore Security Rules se aplicará tu base de datos de Cloud Firestore predeterminada. Si creas varias bases de datos para tu proyecto, puedes implementar Cloud Firestore Security Rules para cada una.
Haz clic en Crear.
Cuando habilitas Cloud Firestore, también habilitas la API en el Administrador de APIs de Cloud.
Configura tu entorno de desarrollo
Agrega las dependencias y las bibliotecas cliente necesarias a tu app.
Java
- Agrega el SDK de Firebase Admin a tu app:
-
Con Gradle:
implementation 'com.google.firebase:firebase-admin:9.7.0'
-
Con Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.0</version> </dependency>
-
Con Gradle:
- Sigue las instrucciones que aparecen a continuación para inicializar Cloud Firestore con las credenciales apropiadas en tu entorno.
Python
- Agrega el SDK de Firebase Admin a tu app de Python:
pip install --upgrade firebase-admin
- Sigue las instrucciones que aparecen a continuación para inicializar Cloud Firestore con las credenciales apropiadas en tu entorno.
Node.js
-
Agrega el SDK de Firebase Admin a tu app:
npm install firebase-admin --save
- Sigue las instrucciones que aparecen a continuación para inicializar Cloud Firestore con las credenciales apropiadas en tu entorno.
Go
- Agrega el SDK de Firebase Admin a tu app de Go:
go get firebase.google.com/go
- Sigue las instrucciones que aparecen a continuación para inicializar Cloud Firestore con las credenciales apropiadas en tu entorno.
PHP
- Las bibliotecas cliente del servidor de Cloud Firestore (Java, Node.js, Python, Go, PHP, C# y Ruby) usan credenciales predeterminadas de la aplicación de Google para la autenticación.
-
Para autenticar desde tu entorno de desarrollo, configura la
variable de entorno
GOOGLE_APPLICATION_CREDENTIALSpara que apunte a un archivo de claves de cuenta de servicio JSON. Puedes crear un archivo de claves en la página de credenciales de la Consola de APIs.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json" - En tu entorno de producción, no es necesario que te autentiques si ejecutas tu aplicación en App Engine o Compute Engine con el mismo proyecto que usas para Cloud Firestore. De lo contrario, configura una cuenta de servicio.
-
Para autenticar desde tu entorno de desarrollo, configura la
variable de entorno
- Instala y habilita la extensión de gRPC para PHP, que necesitarás para usar la biblioteca cliente.
- Agrega la biblioteca PHP de Cloud Firestore a tu app:
composer require google/cloud-firestore
Ruby
- Las bibliotecas cliente del servidor de Cloud Firestore (Java, Node.js, Python, Go, PHP, C# y Ruby) usan credenciales predeterminadas de la aplicación de Google para la autenticación.
-
Para autenticar desde tu entorno de desarrollo, configura la
variable de entorno
GOOGLE_APPLICATION_CREDENTIALSpara que apunte a un archivo de claves de cuenta de servicio JSON. Puedes crear un archivo de claves en la página de credenciales de la Consola de APIs.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- En tu entorno de producción, no es necesario que te autentiques si ejecutas tu aplicación en App Engine o Compute Engine con el mismo proyecto que usas para Cloud Firestore. De lo contrario, configura una cuenta de servicio.
-
Para autenticar desde tu entorno de desarrollo, configura la
variable de entorno
- Agrega la biblioteca de Ruby para Cloud Firestore a tu app en el archivo
Gemfile:gem "google-cloud-firestore"
- Instala las dependencias del
Gemfilecon el siguiente comando:bundle install
Crea prototipos y realiza pruebas con Firebase Local Emulator Suite (opcional)
En el caso de los desarrolladores de aplicaciones para dispositivos móviles, antes de explicar cómo la app escribe o lee datos de Cloud Firestore, veremos un conjunto de herramientas que puedes usar para crear prototipos y probar la funcionalidad de Cloud Firestore: Firebase Local Emulator Suite. Si quieres probar diferentes modelos de datos, optimizar tus reglas de seguridad o encontrar la forma más rentable de interactuar con el backend, trabajar de forma local sin implementar servicios en ejecución puede ser una excelente idea.
Un emulador de Cloud Firestore forma parte de Local Emulator Suite, lo que permite que tu app interactúe con el contenido y la configuración emulados de la base de datos y, si lo deseas, con los recursos emulados del proyecto (funciones, otras bases de datos y reglas de seguridad).
El uso del emulador de Cloud Firestore solo requiere algunos pasos sencillos:
- Agrega una línea de código a la configuración de prueba de tu app para conectarte al emulador.
- Desde la raíz del directorio de tu proyecto local, ejecuta
firebase emulators:start. - Realiza llamadas desde el código prototipo de tu app con un SDK de la plataforma de Cloud Firestore como de costumbre.
Hay una explicación detallada sobre Cloud Firestore y Cloud Functions disponible. También deberías consultar la introducción a Local Emulator Suite.
Inicializa Cloud Firestore
Inicializa una instancia de Cloud Firestore:
Java
El SDK de Cloud Firestore se inicializa de maneras diferentes, según tu entorno. A continuación, se muestran los métodos más comunes. Para ver una referencia completa, consulta Inicializa el SDK de Admin.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Para usar el SDK de Firebase Admin en tu propio servidor, usa una cuenta de servicio.
En la consola de Google Cloud, ve a IAM y administración > Cuentas de servicio. Genera una clave privada nueva y guarda el archivo JSON. Luego, usa el archivo para inicializar el SDK:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Python
El SDK de Cloud Firestore se inicializa de maneras diferentes, según tu entorno. A continuación, se muestran los métodos más comunes. Para ver una referencia completa, consulta Inicializa el SDK de Admin.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
También se puede usar una credencial predeterminada de la aplicación existente para inicializar el SDK.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
Para usar el SDK de Firebase Admin en tu propio servidor, usa una cuenta de servicio.
En la consola de Google Cloud, ve a IAM y administración > Cuentas de servicio. Genera una clave privada nueva y guarda el archivo JSON. Luego, usa el archivo para inicializar el SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Python
El SDK de Cloud Firestore se inicializa de maneras diferentes, según tu entorno. A continuación, se muestran los métodos más comunes. Para ver una referencia completa, consulta Inicializa el SDK de Admin.import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
También se puede usar una credencial predeterminada de la aplicación existente para inicializar el SDK.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.client()
Para usar el SDK de Firebase Admin en tu propio servidor, usa una cuenta de servicio.
En la consola de Google Cloud, ve a IAM y administración > Cuentas de servicio. Genera una clave privada nueva y guarda el archivo JSON. Luego, usa el archivo para inicializar el SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
Node.js
El SDK de Cloud Firestore se inicializa de maneras diferentes, según tu entorno. A continuación, se muestran los métodos más comunes. Para ver una referencia completa, consulta Inicializa el SDK de Admin.-
Inicializa en Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Inicializa en Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Inicializa en tu propio servidor
Para usar el SDK de Firebase Admin en tu propio servidor (o cualquier otro entorno de Node.js), usa una cuenta de servicio. En la consola de Google Cloud, ve a IAM y administración > Cuentas de servicio. Genera una clave privada nueva y guarda el archivo JSON. Luego, usa el archivo para inicializar el SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Go
El SDK de Cloud Firestore se inicializa de maneras diferentes, según tu entorno. A continuación, se muestran los métodos más comunes. Para ver una referencia completa, consulta Inicializa el SDK de Admin.import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
Para usar el SDK de Firebase Admin en tu propio servidor, usa una cuenta de servicio.
En la consola de Google Cloud, ve a IAM y administración > Cuentas de servicio. Genera una clave privada nueva y guarda el archivo JSON. Luego, usa el archivo para inicializar el SDK:
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
Para obtener más información sobre la instalación y creación de un cliente de Cloud Firestore, consulta Bibliotecas cliente de Cloud Firestore.
C#
C#
Para obtener más información sobre la instalación y creación de un cliente de Cloud Firestore, consulta Bibliotecas cliente de Cloud Firestore.
Ruby
Agregar datos
Cloud Firestore almacena datos en documentos, que se almacenan en colecciones. Cloud Firestore crea colecciones y documentos de forma implícita la primera vez que agregas datos al documento. No es necesario que crees colecciones o documentos de forma explícita.
Crea una colección nueva y un documento con el siguiente código de ejemplo.
Java
Python
Python
Node.js
Go
PHP
PHP
Para obtener más información sobre la instalación y creación de un cliente de Cloud Firestore, consulta Bibliotecas cliente de Cloud Firestore.
C#
Ruby
Ahora agrega otro documento a la colección users. Observa que este documento incluye un par clave-valor (segundo nombre) que no aparece en el primer documento. Los documentos de una colección pueden contener diferentes conjuntos de información.
Java
Python
Python
Node.js
Go
PHP
PHP
Para obtener más información sobre la instalación y creación de un cliente de Cloud Firestore, consulta Bibliotecas cliente de Cloud Firestore.
C#
Ruby
Lee datos
Usa el visor de datos de Firebase console para verificar rápidamente que agregaste datos a Cloud Firestore.
También puedes utilizar el método “get” para recuperar toda la colección.
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
Node.js
Go
PHP
PHP
Para obtener más información sobre la instalación y creación de un cliente de Cloud Firestore, consulta Bibliotecas cliente de Cloud Firestore.
C#
Ruby
Próximos pasos
Profundiza tus conocimientos con los siguientes temas:
- Modelo de datos: Obtén más información sobre cómo se estructuran los datos en Cloud Firestore, incluidos los datos jerárquicos y las subcolecciones.
- Agrega datos: Obtén más información sobre la creación y la actualización de datos en Cloud Firestore.
- Obtén datos: Obtén más información para recuperar datos.
- Haz consultas simples y compuestas: Obtén información para ejecutar consultas simples y compuestas.
- Ordena y limita consultas: Obtén información para ordenar y limitar los datos que muestran tus consultas.