Introdução à API Cloud Firestore no modo Datastore

Nesta página, apresentamos um breve exercício de construção de um aplicativo TaskList de linha de comando simples com a API Cloud Datastore. O aplicativo TaskList armazena, lista, atualiza e remove tarefas.

Pré-requisitos

  1. Capacidade de escrever e executar um aplicativo de linha de comando nas linguagens de programação usadas neste tópico.
    Além de ter uma compreensão básica de como desenvolver aplicativos, é necessário ser capaz de fazer o download e a instalação de bibliotecas extras antes de continuar este tutorial.
  2. Um projeto do Console do Google Cloud Platform com a API do modo Datastore ativada
    Os aplicativos que usam o modo Datastore precisam estar associados a um projeto do Console do Google Cloud Platform com a API do modo Datastore ativada. Esse projeto fornece as credenciais de autenticação que você usa no aplicativo para que ele seja identificado pelo Google e autorizado a usar a API Cloud Datastore.
    Siga estas instruções para criar um projeto, ativar a API do modo Datastore para o projeto e configurar o ambiente de desenvolvimento local com credenciais de autenticação usando o comando gcloud auth login. Anote o código do projeto, ele será usado posteriormente.
  3. Um aplicativo do App Engine ativo
    Os projetos que usam a API do modo Datastore exigem um aplicativo do App Engine ativo. Abra o painel do App Engine e confirme se o projeto tem um aplicativo do App Engine ativo.
    Crie um aplicativo do App Engine se necessário. O aplicativo não pode ser desativado.

Instalação e configuração

Instale bibliotecas de cliente e defina as configurações adicionais para o ambiente de desenvolvimento.

C#

  1. Verifique se você tem o Visual Studio (versão 2013 ou posterior) instalado.
  2. Faça o download do aplicativo de amostra TaskList aqui.
  3. Extraia os arquivos do zip em um diretório na pasta Documentos.
  4. No Visual Studio, abra o arquivo dotnet-docs-samples-master\datastore\api\Datastore.sln.
  5. Na janela Gerenciador de Soluções do Visual Studio, clique com o botão direito do mouse no projeto TaskList e selecione Definir como projeto de inicialização.
  6. Clique com o botão direito do mouse no projeto TaskList novamente e selecione Propriedades.
  7. Na janela Propriedades, clique em Depurar e digite o código do projeto do Google Cloud Platform na caixa Argumentos da linha de comando:.

    Janela de depuração do Visual Studio

  8. Clique em Arquivo e, em seguida, em Salvar para salvar suas alterações.

  9. Execute o aplicativo. Pressione F5 no teclado.

Go

  1. Clone o aplicativo de amostra TaskList.

    go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  2. Altere os diretórios nos quais você clonou a amostra:

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  3. Em um prompt de comando, execute o seguinte comando, em que <project-id> é o código do seu projeto do Google Cloud Platform.

    export DATASTORE_PROJECT_ID=<project-id>
    

    Usuários do Windows devem usar set em vez de export.

  4. Execute o aplicativo.

    go run tasks.go
    

Java

  1. Verifique se o Maven e o Java (versão 7 ou posterior) estão instalados.

  2. Faça o download do aplicativo de amostra TaskList aqui.

  3. No prompt de comando, descompacte o download:

    unzip master.zip
    
  4. Altere os diretórios para o aplicativo TaskList:

    cd java-docs-samples-master/datastore
    
  5. Execute o seguinte comando, em que <project-id> é o código do projeto do Google Cloud Platform.

    gcloud config set project <project-id>
    
  6. Compile e execute o aplicativo.

    mvn clean compile
    mvn exec:java
    

Node.js

  1. Prepare o ambiente para desenvolvimento em Node.js.

  2. Faça o download do aplicativo de amostra TaskList aqui.

  3. Descompacte o download:

    unzip master.zip
    
  4. Altere os diretórios para o aplicativo TaskList:

    cd nodejs-datastore-master/samples
    
  5. Instale as dependências e vincule o aplicativo:

    npm install
    
  6. Em um prompt de comando, execute o seguinte comando, em que <project-id> é o código do seu projeto do Google Cloud Platform.

    export GCLOUD_PROJECT=<project-id>
    

    Usuários do Windows devem usar set em vez de export.

  7. Execute o aplicativo.

    node tasks.js
    

PHP

  1. Verifique se o PHP (versão 5.6 ou posterior) e o Composer estão instalados.
  2. Faça o download do aplicativo de amostra TaskList aqui.
  3. Descompacte o download:

    unzip master.zip
    
  4. Altere os diretórios para o aplicativo TaskList:

    cd php-docs-samples-master/datastore/tutorial
    
  5. Instale as dependências.

    Se o Composer estiver instalado localmente:

    php composer.phar install
    

    Se o Composer estiver instalado globalmente:

    composer install
    
  6. Execute o aplicativo.

    php tasks.php
    

Python

  1. Verifique se o Python (versão 2.7.9 ou posterior), o pip e o virtualenv estão instalados.
  2. Ative uma sessão do virtualenv.

    virtualenv venv
    source venv/bin/activate
    
  3. Faça o download do aplicativo de amostra TaskList aqui.

  4. Descompacte o download:

    unzip master.zip
    
  5. Altere os diretórios para o aplicativo TaskList:

    cd python-docs-samples-master/datastore/cloud-client
    
  6. Instale as dependências:

    pip install -r requirements.txt
    
  7. Execute o aplicativo. Use o código do projeto do Google Cloud Platform em <project-id>.

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

Ruby

  1. Verifique se o Ruby e o Bundler estão instalados.

  2. Faça o download do aplicativo de amostra TaskList aqui.

  3. Descompacte o download:

    unzip master.zip
    
  4. Altere os diretórios para o aplicativo TaskList:

    cd ruby-docs-samples-master/datastore
    
  5. Instale as dependências:

    bundle install
    
  6. Em um prompt de comando, execute o seguinte comando, em que <project-id> é o código do seu projeto do Google Cloud Platform.

    export GOOGLE_CLOUD_PROJECT=<project-id>
    

    Usuários do Windows devem usar set em vez de export.

  7. Execute o aplicativo.

    bundle exec ruby tasks.rb
    

Como criar um objeto de serviço autorizado

Para fazer solicitações autenticadas nas APIs do Google Cloud usando as bibliotecas de cliente das APIs do Google, é preciso:

  • buscar a credencial a ser usada nas solicitações;
  • criar um objeto de serviço que usa essa credencial.

Em seguida, faça chamadas para APIs chamando métodos no objeto de serviço do Datastore.

Neste exemplo, você buscará o Application Default Credentials do ambiente e o transferirá como um argumento para criar o objeto de serviço.

Veja o chamada para criar o objeto de serviço autorizado no modo Datastore:

C#

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Go.

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

Java

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Python.

from google.cloud import datastore

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

Ruby

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Ruby.

require "google/cloud/datastore"

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

Como armazenar dados

Os objetos no Datastore são conhecidos como entidades, e cada entidade é de um tipo específico. O aplicativo TaskList armazenará entidades do tipo Task, com as seguintes propriedades:

  • description: uma string especificada pelo usuário como a descrição da tarefa
  • created: uma data que mostra quando a tarefa foi criada inicialmente
  • done: um valor booleano que indica se a tarefa foi concluída

Quando o usuário adicionar uma nova tarefa, o aplicativo TaskList criará uma entidade Task com valores das propriedades listadas acima:

C#

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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

Neste aplicativo, também forneceremos um método de atualização da propriedade done para indicar que a tarefa está concluída:

C#

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Node.js.

async function markDone(taskId) {
  const transaction = datastore.transaction();
  const taskKey = datastore.key(['Task', 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Ruby.

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

  task["done"] = true

  @datastore.save task
end

Este é o método para excluir uma entidade Task, usando a chave da entidade Task:

C#

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Node.js.

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

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

PHP

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Python.

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

Ruby

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Ruby.

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

  @datastore.delete task
end

Como executar uma consulta

Além de recuperar entidades do Datastore diretamente por meio das chaves delas, um aplicativo pode realizar uma consulta para recuperar as entidades usando os valores das propriedades delas. Uma consulta típica inclui:

  • um tipo de entidade ao qual a consulta se aplica
  • zero ou mais filtros, por exemplo, para selecionar os tipos cujas propriedades correspondem a um valor
  • zero ou mais ordens de classificação, para colocar os resultados em sequência.

Neste aplicativo, consultaremos no Datastore as entidades Task classificadas por hora de criação:

C#

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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 aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do Cloud Datastore para Python.

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

    return list(query.fetch())

Ruby

Para aprender a instalar e usar a biblioteca de cliente para o Cloud Datastore, consulte as bibliotecas de cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API do 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óximas etapas

Este tutorial abrange apenas as etapas mais básicas necessárias para fazer chamadas para a API do modo Datastore a partir de um aplicativo de linha de comando. O Datastore é compatível com transações ACID rápidas e altamente escalonáveis, como consultas semelhantes a SQL, índices e mais.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Datastore