Erste Schritte mit der Firestore in Datastore mode API

Diese Seite enthält eine kurze Übung, bei der mit Firestore in Datastore mode API eine einfache TaskList-Befehlszeilenanwendung erstellt wird. Mit der TaskList-Anwendung werden Aufgaben gespeichert, aufgelistet, aktualisiert und entfernt.

Voraussetzungen

  1. Fähigkeit, eine Befehlszeilenanwendung in den Programmiersprachen zu schreiben und auszuführen, die in diesem Thema verwendet werden
    Neben grundlegenden Kenntnissen zur Entwicklung von Anwendungen sollten Sie in der Lage sein, zusätzliche Bibliotheken herunterzuladen und zu installieren, bevor Sie sich mit dieser Anleitung befassen.
  2. Ein Google Cloud Console-Projekt mit aktivierter Datastore mode API
    Anwendungen, die den Datastore-Modus verwenden, müssen mit einem Google Cloud Console-Projekt verknüpft sein, für das die Datastore mode API aktiviert ist. Das Projekt stellt Authentifizierungsdaten bereit, mit denen Sie Ihre Anwendung gegenüber Google identifizieren, damit die Nutzung der Datastore mode API autorisiert wird.
    Erstellen Sie ein Projekt gemäß dieser Anleitung. Aktivieren Sie die Datastore mode API für das Projekt und richten Sie mit dem Befehl gcloud auth login Ihre lokale Entwicklungsumgebung mit Authentifizierungsdaten ein. Notieren Sie sich die Projekt-ID, die Sie später benötigen.
  3. Eine aktive App Engine-Anwendung
    Projekte, die die Datastore mode API verwenden, brauchen eine aktive App Engine-Anwendung. Öffnen Sie das App Engine-Dashboard und prüfen Sie, ob Ihr Projekt eine aktive App Engine-Anwendung hat.
    Erstellen Sie gegebenenfalls eine App Engine-Anwendung. Die App darf nicht deaktiviert sein.

Installation und Einrichtung

Installieren Sie Clientbibliotheken und konfigurieren Sie zusätzliche Einstellungen für Ihre Entwicklungsumgebung.

C#

  1. Achten Sie darauf, dass Visual Studio (ab Version 2013) installiert ist.
  2. Laden Sie die TaskList-Beispielanwendung herunter.
  3. Extrahieren Sie die Dateien aus der ZIP-Datei in ein Verzeichnis in Ihrem Ordner Dokumente.
  4. Öffnen Sie in Visual Studio die Datei dotnet-docs-samples-master\datastore\api\Datastore.sln.
  5. Klicken Sie im Fenster Projektmappen-Explorer von Visual Studio mit der rechten Maustaste auf das TaskList-Projekt und wählen Sie Als Startprojekt festlegen aus.
  6. Klicken Sie mit der rechen Maustaste noch einmal auf das Projekt TaskList und wählen Sie Eigenschaften aus.
  7. Klicken Sie im Fenster Eigenschaften auf Fehlerbehebung und geben Sie die ID Ihres Google Cloud Platform-Projekts in das Feld Befehlszeilenargumente ein.

    Visual Studio-Fehlerbehebungsfenster

  8. Klicken Sie auf Datei und danach auf Speichern, um die Änderungen zu speichern.

  9. Führen Sie die Anwendung aus: Drücken Sie F5 auf der Tastatur.

Go

  1. Klonen Sie die TaskList-Beispielanwendung:

    go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  2. Wechseln Sie zu den Verzeichnissen, in denen Sie das Beispiel geklont haben:

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
    
  3. Führen Sie in einer Befehlszeile den folgenden Befehl aus, wobei <project-id> die ID des Google Cloud Platform-Projekts ist:

    export DATASTORE_PROJECT_ID=<project-id>
    

    Windows-Nutzer sollten set anstelle von export verwenden.

  4. Führen Sie die Anwendung aus:

    go run tasks.go
    

Java

  1. Achten Sie darauf, dass Maven und Java (Version 7 oder höher) installiert sind.

  2. Laden Sie die TaskList-Beispielanwendung herunter.

  3. Entpacken Sie den Download in einer Befehlszeile:

    unzip master.zip
    
  4. Wechseln Sie in das Verzeichnis der TaskList-Anwendung:

    cd java-docs-samples-master/datastore
    
  5. Führen Sie den folgenden Befehl aus, wobei <project-id> die ID des Google Cloud Platform-Projekts ist:

    gcloud config set project <project-id>
    
  6. Kompilieren Sie die Anwendung und führen Sie sie aus:

    mvn clean compile
    mvn exec:java
    

Node.js

  1. Bereiten Sie Ihre Umgebung für die Node.js-Entwicklung vor.

  2. Laden Sie die TaskList-Beispielanwendung herunter.

  3. Entpacken Sie den Download:

    unzip master.zip
    
  4. Wechseln Sie in das Verzeichnis der TaskList-Anwendung:

    cd nodejs-datastore-master/samples
    
  5. Installieren Sie die Abhängigkeiten und verknüpfen Sie die Anwendung:

    npm install
    
  6. Führen Sie in einer Befehlszeile den folgenden Befehl aus, wobei <project-id> die ID des Google Cloud Platform-Projekts ist:

    export GCLOUD_PROJECT=<project-id>
    

    Windows-Nutzer sollten set anstelle von export verwenden.

  7. Führen Sie die Anwendung aus:

    node tasks.js
    

PHP

  1. Achten Sie darauf, dass PHP (ab Version 5.6) und Composer installiert sind.
  2. Laden Sie die TaskList-Beispielanwendung herunter.
  3. Entpacken Sie den Download:

    unzip master.zip
    
  4. Wechseln Sie in das Verzeichnis der TaskList-Anwendung:

    cd php-docs-samples-master/datastore/tutorial
    
  5. Installieren Sie die Abhängigkeiten.

    Wenn Composer lokal installiert ist:

    php composer.phar install
    

    Wenn Composer global installiert ist:

    composer install
    
  6. Führen Sie die Anwendung aus:

    php tasks.php
    

Python

  1. Achten Sie darauf, dass Python (ab Version 2.7.9), pip und virtualenv installiert sind.
  2. Aktivieren Sie eine virtualenv-Sitzung.

    virtualenv venv
    source venv/bin/activate
    
  3. Laden Sie die TaskList-Beispielanwendung herunter.

  4. Entpacken Sie den Download:

    unzip master.zip
    
  5. Wechseln Sie in das Verzeichnis der TaskList-Anwendung:

    cd python-docs-samples-master/datastore/cloud-client
    
  6. Installieren Sie Abhängigkeiten:

    pip install -r requirements.txt
    
  7. Führen Sie die Anwendung aus: Verwenden Sie für <project-id> die ID Ihres Google Cloud Platform-Projekts.

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

Ruby

  1. Achten Sie darauf, dass Ruby und Bundler installiert sind.

  2. Laden Sie die TaskList-Beispielanwendung herunter.

  3. Entpacken Sie den Download:

    unzip master.zip
    
  4. Wechseln Sie in das Verzeichnis der TaskList-Anwendung:

    cd google-cloud-ruby-master/google-cloud-datastore/samples
    
  5. Installieren Sie die Abhängigkeiten:

    bundle install
    
  6. Führen Sie in einer Befehlszeile den folgenden Befehl aus, wobei <project-id> die ID des Google Cloud Platform-Projekts ist:

    export GOOGLE_CLOUD_PROJECT=<project-id>
    

    Windows-Nutzer sollten set anstelle von export verwenden.

  7. Führen Sie die Anwendung aus:

    bundle exec ruby tasks.rb
    

Autorisiertes Dienstobjekt erstellen

Wenn Sie mithilfe der Google APIs-Clientbibliotheken authentifizierte Anfragen an Google Cloud APIs stellen möchten, müssen Sie:

  • die Anmeldedaten für die Anfragen abrufen.
  • ein Dienstobjekt erstellen, das Anmeldedaten verwendet.

Dann können Sie API-Aufrufe ausführen, indem Sie Methoden für das Dienstobjekt im Datastore-Modus aufrufen.

Für dieses Beispiel rufen Sie Standardanmeldedaten für Anwendungen aus der Umgebung ab und übergeben sie als Argument, um das Dienstobjekt zu erstellen.

So sieht der Aufruf zum Erstellen des autorisierten Dienstobjekts im Datastore-Modus aus:

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore C# API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Go API.

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

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Java API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Node.js API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore PHP API.

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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Python API.

from google.cloud import datastore

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

Ruby

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Ruby API.

require "google/cloud/datastore"

datastore = Google::Cloud::Datastore.new

Daten speichern

Objekte im Datastore-Modus werden als Entitäten bezeichnet und jede Entität gehört zu einer bestimmten Art. Die TaskList-Anwendung speichert Entitäten der Art Task mit den folgenden Attributen:

  • description: ein vom Nutzer als Aufgabenbeschreibung angegebener String
  • created: ein Datum, mit dem angegeben wird, wann die Aufgabe erstellt wurde
  • done: ein boolescher Wert, mit dem angegeben wird, ob die Aufgabe abgeschlossen wurde

Wenn der Nutzer eine neue Aufgabe hinzufügt, erstellt die TaskList-Anwendung eine Task-Entität mit Werten für die oben aufgeführten Attribute:

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore C# API.

/// <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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Go API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Java API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Node.js API.

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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore PHP API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Python API.

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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Ruby API.

def add_task description
  require "google/cloud/datastore"

  datastore = Google::Cloud::Datastore.new

  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

Für diese Anwendung stellen wir auch eine Methode zur Aktualisierung des Attributs done bereit, um anzugeben, dass die Aufgabe abgeschlossen ist:

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore C# API.

/// <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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Go API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Java API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Node.js API.

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) {
    await transaction.rollback();
  }
}

PHP

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore PHP API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Python API.

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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Ruby API.

def mark_done task_id
  require "google/cloud/datastore"

  datastore = Google::Cloud::Datastore.new

  task = datastore.find "Task", task_id

  task["done"] = true

  datastore.save task
end

Dies ist die Methode zum Löschen einer Task-Entität mit dem Schlüssel der Task-Entität:

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore C# API.

/// <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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Go API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Java API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Node.js API.

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

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

PHP

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore PHP API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Python API.

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

Ruby

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Ruby API.

def delete_task task_id
  require "google/cloud/datastore"

  datastore = Google::Cloud::Datastore.new

  task = datastore.find "Task", task_id

  datastore.delete task
end

Abfrage ausführen

Zusätzlich zum Abruf von Entitäten aus dem Datastore-Modus direkt mit den entsprechenden Schlüsseln kann eine Anwendung anhand einer Abfrage die Entitäten nach den Werten ihrer Attribute abrufen. Eine typische Abfrage umfasst

  • Einen Entitätstyp, auf den die Abfrage angewendet wird
  • Null oder mehr Filter, beispielsweise zur Auswahl von Typen, deren Attribute mit einem Wert übereinstimmen
  • Null oder mehr Sortierfolgen zur Anordnung der Ergebnisse

Bei dieser Anwendung wird der Datastore-Modus auf Task-Entitäten abgefragt, die nach der Erstellungszeit sortiert sind:

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore C# API.

/// <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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Go API.

// 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Java API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Node.js API.

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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore PHP API.

/**
 * 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

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Python API.

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

    return list(query.fetch())

Ruby

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Datastore finden Sie hier. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Datastore Ruby API.

def list_tasks
  require "google/cloud/datastore"

  datastore = Google::Cloud::Datastore.new

  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

Weitere Informationen

Diese Anleitung enthält lediglich die grundlegenden Schritte, die notwendig sind, um über eine Befehlszeilenanwendung Aufrufe an die Datastore mode API auszuführen. Der Datastore-Modus unterstützt unter anderem schnelle und hoch skalierbare ACID-Transaktionen, SQL-ähnliche Abfragen und Indexe.