Firestore ist eine NoSQL-Dokumentdatenbank, die auf Autoscaling, hohe Leistung und einfache Anwendungsentwicklung ausgelegt ist. Es ist die neueste Version von Datastore und bietet einige Verbesserungen.
Da Firestore im Datastore-Modus für Serveranwendungsfälle und für App Engine optimiert ist, empfehlen wir die Verwendung von Firestore im Datastore-Modus für Datenbanken, die hauptsächlich von App Engine-Anwendungen verwendet werden. Firestore im nativen Modus ist besonders nützlich für mobile und Echtzeit-Benachrichtigungs-Anwendungsfälle. Weitere Informationen zu Firestore-Modi finden Sie unter Zwischen nativem Modus und Datastore-Modus wechseln.
Datastore-Modus mit App Engine verwenden
So verwenden Sie den Datastore-Modus mit App Engine:
Falls noch nicht geschehen, erstellen Sie eine Datenbank und wählen Sie Firestore im Datastore-Modus aus.
Sie können für App Engine-Anwendungen vorhandene Datastore-Datenbanken verwenden. Diese bereits vorhandenen Datenbanken werden automatisch auf Firestore im Datastore-Modus aktualisiert.
Deklarieren Sie in Ihrer Anwendung Datastore mithilfe des
go get cloud.google.com/go/datastore
-Befehls als Abhängigkeit. Alternativ können Sie Abhängigkeiten in dergo.mod
-Datei Ihrer Anwendung angeben. Weitere Informationen finden Sie unter Abhängigkeiten angeben.Verwenden Sie die Google Cloud-Clientbibliothek, damit Sie Entitäten lesen und schreiben sowie Daten abfragen können.
Indexe konfigurieren
Im Datastore-Modus werden für jede von Ihrer Anwendung ausgeführte Abfrage Indexe verwendet. Diese Indexe werden bei jeder Änderung von Entitäten aktualisiert. Dies gewährleistet, dass die Ergebnisse schnell zurückgegeben werden, wenn die Anwendung eine Abfrage startet.
Im Datastore-Modus werden für einfache Abfragetypen automatisch Indexe mit nur einem Attribut erstellt. Bei komplexen Abfragen, die mehrere Attribute enthalten, müssen Sie zusammengesetzte Indexe in der Datei
index.yaml
Ihrer Anwendung konfigurieren.Der App Engine-Entwicklungsserver aktualisiert Ihre Datei
index.yaml
mit den benötigten zusammengesetzten Indexen zum Ausführen Ihrer Tests. Ebenso generiert der Datastore-Modus-Emulator Indexe für das Ausführen von Tests.Sie haben auch die Möglichkeit, die Indexe manuell zur Datei
index.yaml
Ihrer Anwendung hinzufügen, wenn Sie keine lokalen Tests ausführen oder Ihre Tests keine komplexen Abfragen enthalten.Datenbankberechtigungen festlegen
Standardmäßig hat Ihre Anwendung alle Berechtigungen, die zum Lesen und Schreiben in Datastore-Modus- und Firestore-Datenbanken in Ihrem Google Cloud-Projekt erforderlich sind.
Zur Verwaltung dieser Berechtigungen nutzt jede App Engine-Anwendung ein Standarddienstkonto, das vollständigen Lese- und Schreibzugriff auf Datastore-Modus- und Firestore-Datenbanken im selben Projekt wie die Anwendung bietet. Sie können die Berechtigungen des Standarddienstkontos ändern. Ihre Anwendung verliert dann aber möglicherweise den Zugriff, solange ihr keine IAM-Rolle mit den erforderlichen Berechtigungen zugewiesen ist.
Informationen darüber, wie Sie anderen Nutzern, Anwendungen oder Projekten Zugriff auf eine Datenbank gewähren, finden Sie unter Auf Ihre Datenbank zugreifen.
Datastore-Modus-Emulator für lokale Tests verwenden
Die Google Cloud CLI enthält einen lokalen Emulator für die Produktionsumgebung im Datastore-Modus. Sie können mit dem Emulator Ihre Anwendung lokal entwickeln und testen. Darüber hinaus haben Sie die Möglichkeit, mit dem Emulator Indexe für Ihre Cloud Firestore-Produktionsinstanz im Datastore-Modus zu generieren und nicht benötigte Indexe zu löschen.Wenn Sie den lokalen App Engine-Entwicklungsserver zum Testen Ihrer Anwendung verwenden, legen Sie beim Starten des Servers das Flag
--support_datastore_emulator=true
fest. Damit ist gewährleistet, dass der Server den Datastore-Modus-Emulator nutzt.Wenn Sie den Datastore-Modus-Emulator verwenden, zeigt „dev_appserver“ Folgendes an:
... Using Cloud Datastore Emulator.
Preise, Kontingente und Limits
Der Datastore-Modus bietet ein kostenloses Kontingent mit täglichen Limits. Kostenpflichtige Konten bieten unbegrenzte Speicher-, Lese- und Schreibvorgänge. Weitere Informationen finden Sie auf der Seite Datastore-Kontingente.