Usa Cloud Firestore en modo Datastore

Firestore es una base de datos de documentos NoSQL diseñada para el ajuste de escala automático, el alto rendimiento y el desarrollo fácil de aplicaciones. Es la versión más reciente de Datastore y presenta varias mejoras con respecto a Datastore.

Recomendamos usar Firestore en el modo Datastore para las bases de datos que usarán principalmente las aplicaciones de App Engine. Para obtener más información sobre los modos de Firestore, consulta Elige entre el modo nativo y el modo Datastore.

En este documento, se describe cómo usar la Biblioteca cliente de Google Cloud para almacenar y recuperar datos en una base de datos en modo Datastore.

Requisitos previos y configuración

Sigue las instrucciones en “Hello, World!” de Ruby en App Engine a fin de configurar tu entorno y proyecto, y comprender cómo se estructuran las apps de Ruby en App Engine. Anota y guarda el ID del proyecto, ya que lo necesitarás para ejecutar la aplicación de muestra que se describe en este documento.

Clona el repositorio

Descarga (clona) la muestra:

git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/datastore

Edita la configuración del proyecto y ajusta las dependencias

En Gemfile, incluye la biblioteca google-cloud, que tiene las funciones para el modo Datastore.

source "https://rubygems.org"

gem "google-cloud-datastore"
gem "sinatra"

Código de la aplicación

La aplicación de muestra registra, recupera y muestra los IP de las visitantes. Puedes ver que una entrada de registro es una clase simple de dos campos que recibe el tipo visit y se guarda en modo Datastore mediante el comando save. Luego, se recuperan las diez visitas más recientes en orden descendente con el comando run del conjunto de datos.

require "digest/sha2"
require "sinatra"
require "google/cloud/datastore"

get "/" do
  datastore = Google::Cloud::Datastore.new

  # Save visit in Datastore
  visit = datastore.entity "Visit" do |v|
    v["user_ip"]   = Digest::SHA256.hexdigest request.ip
    v["timestamp"] = Time.now
  end
  datastore.save visit

  # Query the last 10 visits from the Datastore
  query     = datastore.query("Visit").order("timestamp", :desc).limit(10)
  visits    = datastore.run query

  response.write "Last 10 visits:\n"

  visits.each do |visit|
    response.write "Time: #{visit['timestamp']} Addr: #{visit['user_ip']}\n"
  end

  content_type "text/plain"
  status 200
end

Usa archivos index.yaml

La app de muestra realiza consultas sencillas. Las consultas más elaboradas del modo Datastore requieren uno o más índices, que debes especificar en un archivo index.yaml que subas junto con tu app. Este archivo puede crearse de forma manual o generarse automáticamente mientras se prueba tu app de forma local.

Pruebas locales

Si necesitas desarrollar y probar tu aplicación de forma local, puedes usar el emulador del modo Datastore.

Más información

Para obtener toda la información sobre el modo Datastore, incluidos los conceptos y las optimizaciones, consulta la documentación de Cloud Firestore en modo Datastore.