Primeros pasos con la API de Cloud Firestore en modo Datastore

En esta página, se proporciona un breve ejercicio sobre cómo compilar una aplicación TaskList de línea de comandos simple con la API de Cloud Firestore en modo Datastore. La aplicación TaskList almacena, enumera, actualiza y quita tareas.

Requisitos previos

  1. Capacidad para escribir y ejecutar una aplicación de línea de comandos en los lenguajes de programación que se usan en este tema
    Además de una comprensión básica de cómo desarrollar aplicaciones, deberías poder descargar y, luego, instalar bibliotecas adicionales antes de intentar llevar a cabo este instructivo.
  2. Un proyecto de Google Cloud Platform Console con la API del modo Datastore habilitada
    Las aplicaciones que usan el modo Datastore deben estar asociadas a un proyecto de Google Cloud Platform Console con la API del modo Datastore habilitada. En este proyecto, se ofrecen credenciales de autenticación que puedes usar en tu aplicación para que Google la identifique y la autorice a usar la API del modo Datastore.
    Sigue estas instrucciones para crear un proyecto, habilitar la API del modo Datastore y configurar tu entorno de desarrollo local con credenciales de autenticación mediante el comando gcloud auth login. Toma nota del ID del proyecto que usarás luego.
  3. Una aplicación de App Engine activa
    Los proyectos que usan la API del modo Datastore requieren una aplicación de App Engine activa. Abre el panel de App Engine y confirma que tu proyecto tiene una app de App Engine activa.
    Crea una app de App Engine si es necesario. La aplicación no debe estar inhabilitada.

Realiza la instalación y configuración

Instala las bibliotecas cliente y realiza los ajustes de configuración adicionales que sean necesarios para el entorno de desarrollo.

C#

  1. Asegúrate de tener instalado Visual Studio (versión 2013 o posterior).
  2. Descarga la aplicación de muestra TaskList desde aquí.
  3. Extrae los archivos comprimidos en un directorio dentro tu carpeta Documentos.
  4. En Visual Studio, abre el archivo dotnet-docs-samples-master\datastore\api\Datastore.sln.
  5. En la ventana Explorador de soluciones (Solution Explorer) de Visual Studio, haz clic derecho en el proyecto TaskList y elige Establecer como proyecto de inicio (Set as StartUp Project).
  6. Haz clic en el botón ubicado sobre el proyecto TaskList una vez más y elige Properties (Propiedades).
  7. En la ventana Propiedades, haz clic en Depurar (Debug) y escribe el ID de tu proyecto de Google Cloud Platform en el recuadro Argumentos de línea de comandos (Command line arguments):

    Ventana Depurar de Visual Studio

  8. Haz clic en Archivo y luego haz clic en Guardar para guardar los cambios.

  9. Ejecuta la aplicación. Presiona F5 en el teclado.

Go

  1. Clona la aplicación de muestra TaskList.

    go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  2. Ve al directorio al que clonaste la muestra:

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  3. En el símbolo del sistema, ejecuta lo siguiente, en el que <project-id> es el ID del proyecto de Google Cloud Platform.

    export DATASTORE_PROJECT_ID=<project-id>
    

    (Usuarios de Windows: usa set en lugar de export.)

  4. Ejecuta la aplicación.

    go run tasks.go
    

Java

  1. Asegúrate de tener instalados Maven y Java (versión 7 o posterior).

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. En el símbolo del sistema, descomprime el archivo que descargaste.

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd java-docs-samples-master/datastore
    
  5. Ejecuta lo siguiente, en el que <project-id> es el ID del proyecto de Google Cloud Platform.

    gcloud config set project <project-id>
    
  6. Compila y ejecuta la aplicación.

    mvn clean compile
    mvn exec:java
    

Node.js

  1. Prepara tu entorno para el desarrollo en Node.js.

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd nodejs-datastore-master/samples
    
  5. Instala las dependencias y vincula la aplicación:

    npm install
    
  6. En el símbolo del sistema, ejecuta lo siguiente, en el que <project-id> es el ID del proyecto de Google Cloud Platform.

    export GCLOUD_PROJECT=<project-id>
    

    (Usuarios de Windows: usa set en lugar de export.)

  7. Ejecuta la aplicación.

    node tasks.js
    

PHP

  1. Asegúrate de tener instalados PHP (versión 5.6 o posterior) y Composer.
  2. Descarga la aplicación de muestra TaskList desde aquí.
  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd php-docs-samples-master/datastore/tutorial
    
  5. Instala las dependencias:

    Si Composer se encuentra instalado de manera local, ejecuta el siguiente comando:

    php composer.phar install
    

    Si Composer se encuentra instalado de manera global, ejecuta el siguiente comando:

    composer install
    
  6. Ejecuta la aplicación.

    php tasks.php
    

Python

  1. Asegúrate de tener Python (versión 2.7.9 o posterior), pip y virtualenv instalados.
  2. Activa una sesión de virtualenv.

    virtualenv venv
    source venv/bin/activate
    
  3. Descarga la aplicación de muestra TaskList desde aquí.

  4. Descomprime el archivo que descargaste:

    unzip master.zip
    
  5. Ve al directorio de la aplicación TaskList:

    cd python-docs-samples-master/datastore/cloud-client
    
  6. Instala las dependencias:

    pip install -r requirements.txt
    
  7. Ejecuta la aplicación. Usa el ID del proyecto de Google Cloud Platform para <project-id>.

    python tasks.py --project-id <project-id>
    

Ruby

  1. Asegúrate de tener instalados Ruby y Bundler.

  2. Descarga la aplicación de muestra TaskList desde aquí.

  3. Descomprime el archivo que descargaste:

    unzip master.zip
    
  4. Ve al directorio de la aplicación TaskList:

    cd ruby-docs-samples-master/datastore
    
  5. Instala las dependencias

    bundle install
    
  6. En el símbolo del sistema, ejecuta lo siguiente, en el que <project-id> es el ID del proyecto de Google Cloud Platform.

    export GOOGLE_CLOUD_PROJECT=<project-id>
    

    (Usuarios de Windows: usa set en lugar de export.)

  7. Ejecuta la aplicación.

    bundle exec ruby tasks.rb
    

Crea un objeto de servicio autorizado

Para realizar solicitudes autenticadas a las API de Google Cloud con las bibliotecas cliente de las API de Google, debes hacer lo siguiente:

  • Obtener la credencial que usarás para las solicitudes
  • Crear un objeto de servicio que use esa credencial

Luego, puedes hacer llamadas a la API mediante llamadas a métodos en el objeto de servicio del modo Datastore.

Para este ejemplo, recuperarás del entorno la credencial predeterminada de la aplicación y la pasarás como argumento para crear el objeto de servicio.

Esta es la llamada para crear el objeto de servicio autorizado del modo Datastore:

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para C#.

// Create an authorized Datastore service using Application Default Credentials.
_db = DatastoreDb.Create(projectId);
// Create a Key factory to construct keys associated with this project.
_keyFactory = _db.CreateKeyFactory("Task");

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Go.

ctx := context.Background()
client, err := datastore.NewClient(ctx, projID)

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Java.

// Create an authorized Datastore service using Application Default Credentials.
private final Datastore datastore = DatastoreOptions.getDefaultInstance().getService();

// Create a Key factory to construct keys associated with this project.
private final KeyFactory keyFactory = datastore.newKeyFactory().setKind("Task");

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Node.js.

// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://googlecloudplatform.github.io/google-cloud-node/#/docs/datastore/latest/guides/authentication
const {Datastore} = require('@google-cloud/datastore');

// Creates a client
const datastore = new Datastore();

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para PHP.

use Google\Cloud\Datastore\DatastoreClient;

/**
 * Create a Cloud Datastore client.
 *
 * @param string $projectId
 * @return DatastoreClient
 */
function build_datastore_service($projectId)
{
    $datastore = new DatastoreClient(['projectId' => $projectId]);
    return $datastore;
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Python.

from google.cloud import datastore

def create_client(project_id):
    return datastore.Client(project_id)

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Ruby.

require "google/cloud/datastore"

@datastore = Google::Cloud::Datastore.new project: project_id

Almacena datos

Los objetos en modo Datastore se conocen como entidades; cada entidad es de una categoría particular. La aplicación TaskList almacenará entidades de la categoría Task, con las siguientes propiedades:

  • description: una string que especifica el usuario como descripción de la tarea
  • created: una fecha que indica cuándo se creó por primera vez la tarea
  • done: un valor booleano que indica si la tarea se llevó a cabo

Cuando el usuario agrega una tarea nueva, la aplicación TaskList crea una entidad Task con valores para las propiedades mencionadas antes:

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para C#.

/// <summary>
///  Adds a task entity to the Datastore
/// </summary>
/// <param name="description">The task description.</param>
/// <returns>The key of the entity.</returns>
Key AddTask(string description)
{
    Entity task = new Entity()
    {
        Key = _keyFactory.CreateIncompleteKey(),
        ["description"] = new Value()
        {
            StringValue = description,
            ExcludeFromIndexes = true
        },
        ["created"] = DateTime.UtcNow,
        ["done"] = false
    };
    return _db.Insert(task);
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Go.

// Task is the model used to store tasks in the datastore.
type Task struct {
	Desc    string    `datastore:"description"`
	Created time.Time `datastore:"created"`
	Done    bool      `datastore:"done"`
	id      int64     // The integer ID used in the datastore.
}

// AddTask adds a task with the given description to the datastore,
// returning the key of the newly created entity.
func AddTask(ctx context.Context, client *datastore.Client, desc string) (*datastore.Key, error) {
	task := &Task{
		Desc:    desc,
		Created: time.Now(),
	}
	key := datastore.IncompleteKey("Task", nil)
	return client.Put(ctx, key, task)
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Java.

/**
 * Adds a task entity to the Datastore.
 *
 * @param description The task description
 * @return The {@link Key} of the entity
 * @throws DatastoreException if the ID allocation or put fails
 */
Key addTask(String description) {
  Key key = datastore.allocateId(keyFactory.newKey());
  Entity task = Entity.newBuilder(key)
      .set("description", StringValue.newBuilder(description).setExcludeFromIndexes(true).build())
      .set("created", Timestamp.now())
      .set("done", false)
      .build();
  datastore.put(task);
  return key;
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Node.js.

async function addTask(description) {
  const taskKey = datastore.key('Task');
  const entity = {
    key: taskKey,
    data: [
      {
        name: 'created',
        value: new Date().toJSON(),
      },
      {
        name: 'description',
        value: description,
        excludeFromIndexes: true,
      },
      {
        name: 'done',
        value: false,
      },
    ],
  };

  try {
    await datastore.save(entity);
    console.log(`Task ${taskKey.id} created successfully.`);
  } catch (err) {
    console.error('ERROR:', err);
  }
}

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para PHP.

/**
 * Create a new task with a given description.
 *
 * @param DatastoreClient $datastore
 * @param $description
 * @return Google\Cloud\Datastore\Entity
 */
function add_task(DatastoreClient $datastore, $description)
{
    $taskKey = $datastore->key('Task');
    $task = $datastore->entity(
        $taskKey,
        [
            'created' => new DateTime(),
            'description' => $description,
            'done' => false
        ],
        ['excludeFromIndexes' => ['description']]
    );
    $datastore->insert($task);
    return $task;
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Python.

def add_task(client, description):
    key = client.key('Task')

    task = datastore.Entity(
        key, exclude_from_indexes=['description'])

    task.update({
        'created': datetime.datetime.utcnow(),
        'description': description,
        'done': False
    })

    client.put(task)

    return task.key

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Ruby.

def add_task description
  task = @datastore.entity "Task" do |t|
    t["description"] = description
    t["created"]     = Time.now
    t["done"]        = false
    t.exclude_from_indexes! "description", true
  end

  @datastore.save task

  puts task.key.id

  task.key.id
end

Con esta aplicación, también proporcionaremos un método para actualizar la propiedad done, a fin de indicar que la tarea se llevó a cabo:

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para C#.

/// <summary>
/// Marks a task entity as done.
/// </summary>
/// <param name="id">The ID of the task entity as given by Key.</param>
/// <returns>true if the task was found.</returns>
bool MarkDone(long id)
{
    using (var transaction = _db.BeginTransaction())
    {
        Entity task = transaction.Lookup(_keyFactory.CreateKey(id));
        if (task != null)
        {
            task["done"] = true;
            transaction.Update(task);
        }
        transaction.Commit();
        return task != null;
    }
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Go.

// MarkDone marks the task done with the given ID.
func MarkDone(ctx context.Context, client *datastore.Client, taskID int64) error {
	// Create a key using the given integer ID.
	key := datastore.IDKey("Task", taskID, nil)

	// In a transaction load each task, set done to true and store.
	_, err := client.RunInTransaction(ctx, func(tx *datastore.Transaction) error {
		var task Task
		if err := tx.Get(key, &task); err != nil {
			return err
		}
		task.Done = true
		_, err := tx.Put(key, &task)
		return err
	})
	return err
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Java.

/**
 * Marks a task entity as done.
 *
 * @param id The ID of the task entity as given by {@link Key#id()}
 * @return true if the task was found, false if not
 * @throws DatastoreException if the transaction fails
 */
boolean markDone(long id) {
  Transaction transaction = datastore.newTransaction();
  try {
    Entity task = transaction.get(keyFactory.newKey(id));
    if (task != null) {
      transaction.put(Entity.newBuilder(task).set("done", true).build());
    }
    transaction.commit();
    return task != null;
  } finally {
    if (transaction.isActive()) {
      transaction.rollback();
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Node.js.

async function markDone(taskId) {
  const transaction = datastore.transaction();
  const taskKey = datastore.key(['Task', datastore.int(taskId)]);

  try {
    await transaction.run();
    const [task] = await transaction.get(taskKey);
    task.done = true;
    transaction.save({
      key: taskKey,
      data: task,
    });
    await transaction.commit();
    console.log(`Task ${taskId} updated successfully.`);
  } catch (err) {
    transaction.rollback();
  }
}

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para PHP.

/**
 * Mark a task with a given id as done.
 *
 * @param DatastoreClient $datastore
 * @param int $taskId
 */
function mark_done(DatastoreClient $datastore, $taskId)
{
    $taskKey = $datastore->key('Task', $taskId);
    $transaction = $datastore->transaction();
    $task = $transaction->lookup($taskKey);
    $task['done'] = true;
    $transaction->upsert($task);
    $transaction->commit();
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Python.

def mark_done(client, task_id):
    with client.transaction():
        key = client.key('Task', task_id)
        task = client.get(key)

        if not task:
            raise ValueError(
                'Task {} does not exist.'.format(task_id))

        task['done'] = True

        client.put(task)

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Ruby.

def mark_done task_id
  task = @datastore.find "Task", task_id

  task["done"] = true

  @datastore.save task
end

Usa este método para borrar una entidad Task con la clave de esa entidad :

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para C#.

/// <summary>
/// Deletes a task entity.
/// </summary>
/// <param name="id">The ID of the task entity as given by Key.</param>
void DeleteTask(long id)
{
    _db.Delete(_keyFactory.CreateKey(id));
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Go.

// DeleteTask deletes the task with the given ID.
func DeleteTask(ctx context.Context, client *datastore.Client, taskID int64) error {
	return client.Delete(ctx, datastore.IDKey("Task", taskID, nil))
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Java.

/**
 * Deletes a task entity.
 *
 * @param id The ID of the task entity as given by {@link Key#id()}
 * @throws DatastoreException if the delete fails
 */
void deleteTask(long id) {
  datastore.delete(keyFactory.newKey(id));
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Node.js.

async function deleteTask(taskId) {
  const taskKey = datastore.key(['Task', datastore.int(taskId)]);

  await datastore.delete(taskKey);
  console.log(`Task ${taskId} deleted successfully.`);
}

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para PHP.

/**
 * Delete a task with a given id.
 *
 * @param DatastoreClient $datastore
 * @param $taskId
 */
function delete_task(DatastoreClient $datastore, $taskId)
{
    $taskKey = $datastore->key('Task', $taskId);
    $datastore->delete($taskKey);
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Python.

def delete_task(client, task_id):
    key = client.key('Task', task_id)
    client.delete(key)

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Ruby.

def delete_task task_id
  task = @datastore.find "Task", task_id

  @datastore.delete task
end

Ejecuta una consulta

Además de recuperar entidades del modo Datastore directamente con sus claves, una aplicación puede realizar una consulta para recuperarlas por los valores de sus propiedades. Una consulta típica incluye lo siguiente:

  • La categoría de la entidad a la cual se aplica la consulta
  • Cero o más filtros (por ejemplo, para seleccionar tipos cuyas propiedades coinciden con un valor)
  • Cero o más órdenes de clasificación para secuenciar los resultados

Para esta aplicación, enviaremos al modo Datastore una consulta de entidades Task ordenadas por tiempo de creación:

C#

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para C#.

/// <summary>
/// Returns a list of all task entities in ascending order of creation time.
/// </summary>
IEnumerable<Entity> ListTasks()
{
    Query query = new Query("Task")
    {
        Order = { { "created", PropertyOrder.Types.Direction.Descending } }
    };
    return _db.RunQuery(query).Entities;
}

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Go.

// ListTasks returns all the tasks in ascending order of creation time.
func ListTasks(ctx context.Context, client *datastore.Client) ([]*Task, error) {
	var tasks []*Task

	// Create a query to fetch all Task entities, ordered by "created".
	query := datastore.NewQuery("Task").Order("created")
	keys, err := client.GetAll(ctx, query, &tasks)
	if err != nil {
		return nil, err
	}

	// Set the id field on each Task from the corresponding key.
	for i, key := range keys {
		tasks[i].id = key.ID
	}

	return tasks, nil
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Java.

/**
 * Returns a list of all task entities in ascending order of creation time.
 *
 * @throws DatastoreException if the query fails
 */
Iterator<Entity> listTasks() {
  Query<Entity> query =
      Query.newEntityQueryBuilder().setKind("Task").setOrderBy(OrderBy.asc("created")).build();
  return datastore.run(query);
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Node.js.

async function listTasks() {
  const query = datastore.createQuery('Task').order('created');

  const [tasks] = await datastore.runQuery(query);
  console.log('Tasks:');
  tasks.forEach(task => {
    const taskKey = task[datastore.KEY];
    console.log(taskKey.id, task);
  });
}

PHP

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para PHP.

/**
 * Return an iterator for all the tasks in ascending order of creation time.
 *
 * @param DatastoreClient $datastore
 * @return EntityIterator<Google\Cloud\Datastore\Entity>
 */
function list_tasks(DatastoreClient $datastore)
{
    $query = $datastore->query()
        ->kind('Task')
        ->order('created');
    return $datastore->runQuery($query);
}

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Python.

def list_tasks(client):
    query = client.query(kind='Task')
    query.order = ['created']

    return list(query.fetch())

Ruby

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta la página acerca de las bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Datastore para Ruby.

def list_tasks
  query = @datastore.query("Task").order("created")
  tasks = @datastore.run query

  tasks.each do |t|
    puts t["description"]
    puts t["done"] ? "  Done" : "  Not Done"
    puts "  ID: #{t.key.id}"
  end
end

Próximos pasos

Este instructivo solo cubre los pasos básicos esenciales que necesitarás para realizar llamadas a la API del modo Datastore desde una aplicación de línea de comandos. El modo Datastore admite transacciones ACID rápidas y altamente escalables, consultas similares a SQL, índices, etcétera.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Datastore