arrow_back

Daten in eine Firestore-Datenbank importieren

Anmelden Teilnehmen
Zugriff auf über 700 Labs und Kurse nutzen

Daten in eine Firestore-Datenbank importieren

Lab 30 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Zugriff auf über 700 Labs und Kurse nutzen

GSP642

Übersicht

Vor zwölf Jahren gründete Lily die Tierklinikkette „Pet Theory“, die in den letzten Jahren stark gewachsen ist. Das alte Terminplanungssystem kann die gestiegene Arbeitslast jedoch nicht mehr verarbeiten, weshalb Lily Sie bittet, ein cloudbasiertes System zu entwickeln, das besser skalierbar ist als die bisherige Lösung.

Das Ops-„Team" von Pet Theory besteht nur aus Patrick. Deshalb ist es wichtig, dass die Lösung möglichst wenig Wartung erfordert. Das Unternehmen entschied sich daher für eine serverlose Technologie.

Ruby wurde als Beraterin engagiert, um Pet Theory beim Wechsel auf eine serverlose Architektur zu unterstützen. Nach einem Vergleich verschiedener serverloser Datenbanken hat sich das Team für Cloud Firestore entschieden. Firestore arbeitet serverlos. Kapazität muss daher nicht im Voraus bereitgestellt werden und es besteht nicht die Gefahr, an Speicher- oder Leistungsgrenzen zu stoßen. Firestore verwendet Echtzeit-Listener für die Datensynchronisierung zwischen Client-Apps und ist auf Mobilgeräten und im Web offline nutzbar, sodass sich eine reaktionsfähige App entwickeln lässt, die unabhängig von Netzwerklatenz und Internetverbindung funktioniert.

In diesem Lab helfen Sie Patrick dabei, die aktuellen Datenbestände von Pet Theory in eine Cloud Firestore-Datenbank hochzuladen. Ruby ist ebenfalls am Projekt beteiligt.

Architektur

Dieses Diagramm gibt Ihnen einen Überblick über die zu verwendenden Dienste und darüber, wie sie miteinander verbunden sind.

Lernziele

Aufgaben in diesem Lab:

  • Firestore in Google Cloud einrichten
  • Code für den Import in die Datenbank schreiben
  • Kundendaten für Testzwecke generieren
  • Testkundendaten in Firestore importieren

Vorbereitung

Dies ist ein Einführungs-Lab. Es setzt Vertrautheit mit der Cloud Console und Shell-Umgebungen voraus. Erfahrung mit Firebase ist hilfreich, aber nicht zwingend erforderlich.

Sie sollten Dateien bearbeiten können. Sie können dafür einen beliebigen Texteditor verwenden (z. B. nano oder vi) oder den Code-Editor von Cloud Shell nutzen. Dieser wird in der oberen Funktionsleiste aufgerufen:

Sobald Sie bereit sind, können Sie nach unten scrollen und die dort aufgeführten Schritte zur Einrichtung Ihrer Lab-Umgebung befolgen.

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange Google Cloud-Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich „Details zum Lab“ mit diesen Informationen:

    • Schaltfläche „Google Cloud Console öffnen“
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite „Anmelden“ geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich „Details zum Lab“.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein.

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren .

  2. Klicken Sie sich durch die folgenden Fenster:

    • Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
    • Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.

Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Aufgabe 1: Firestore in Google Cloud einrichten

Patrick soll die aktuellen Datenbestände von Pet Theory in eine Cloud Firestore-Datenbank hochladen. Dabei wird er eng mit Ruby zusammenarbeiten. Ruby erhält eine Nachricht von Patrick aus der IT-Abteilung…

Patrick, IT-Administrator

Hallo Ruby,

für unsere serverlose Lösung müssen wir zuerst mit Google Cloud eine Firestore-Datenbank erstellen. Kannst du mir helfen? Ich weiß nicht so genau, wie ich sie einrichten soll.

Patrick

Ruby, Softwareberaterin

Hallo Patrick,

na klar, ich bin dir gerne behilflich. Für den Anfang sende ich dir ein paar Informationen. Melde dich wieder, sobald du die Datenbank erstellt hast.

Ruby

Richten Sie mit Patrick über die Cloud Console eine Firestore-Datenbank ein.

  1. Klicken Sie im Navigationsmenü der Cloud Console () auf Alle Produkte anzeigen und wählen Sie unter Datenbanken die Option Firestore aus.

  2. Klicken Sie auf Firestore-Datenbank erstellen.

  3. Wählen Sie Standardversion aus.

  4. Wählen Sie unter „Konfigurationsoptionen“ die Option Firestore-nativ aus.

  5. Wählen Sie unter „Sicherheitsregeln“ die Option Öffnen aus.

  6. Klicken Sie unter „Standorttyp“ auf Region und wählen Sie dann die Lab-Region aus der Liste aus, die zu Beginn des Labs festgelegt wurde.

    Hinweis: Wenn die Liste der Regionen leer ist, aktualisieren Sie den Browser oder starten Sie den Assistenten noch einmal über das Menü der Cloud Console.
Hinweis: Beide Modi bieten hohe Leistung und strikte Konsistenz, sehen aber unterschiedlich aus und sind für verschiedene Anwendungsfälle optimiert.
  1. Lassen Sie die anderen Einstellungen unverändert und klicken Sie auf Datenbank erstellen.

Nach Abschluss des Vorgangs erhält Patrick eine E-Mail von Ruby…

Ruby, Softwareberaterin

Hallo Patrick,

bisher lief ja alles prima! Zur Verwaltung des Datenbankzugriffs verwenden wir ein Dienstkonto, das automatisch erstellt und mit den erforderlichen Berechtigungen ausgestattet wurde.

Jetzt ist alles bereit, um die alte Datenbank auf Firestone zu migrieren.

Ruby

Patrick, IT-Administrator

Hallo Ruby,

vielen Dank für deine Hilfe. Die Firestore-Datenbank einzurichten war wirklich nicht schwer.

Ich hoffe, der Datenbankimport lässt sich einfacher bewerkstelligen als bei der alten Datenbank. Da war er ziemlich aufwendig und langwierig.

Patrick

Aufgabe 2: Code für den Import in die Datenbank schreiben

Die neue Cloud Firestore-Datenbank ist erstellt, muss aber noch gefüllt werden. Die Kundendaten von Pet Theory befinden sich nach wie vor nur in der alten Datenbank.

Patrick sendet eine Nachricht an Ruby…

Patrick, IT-Administrator

Hallo Ruby,

mein Manager würde gerne die Kundendaten in die neue Firestore-Datenbank migrieren.

Ich habe die alte Datenbank als CSV-Datei exportiert, bin aber unsicher, wie ich die Daten jetzt in die Firestore-Datenbank bekommen soll.

Hast du einen Tipp für mich?

Patrick

Ruby, Softwareberaterin

Hallo Patrick,

na klar, lass uns einen Termin vereinbaren. Dann können wir alles Nötige besprechen.

Ruby

Wie Patrick bereits erwähnt hat, liegen die Kundendaten als CSV-Datei vor. Patrick benötigt nun eine App, die die Kundendatensätze aus einer CSV-Datei auslesen und in Firestore schreiben kann. Da Patrick sich mit JavaScript auskennt, erstellen Sie diese Anwendung mit der JavaScript-Laufzeit Node.js.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um das Pet Theory-Repository zu klonen:
git clone https://github.com/rosera/pet-theory
  1. Sie können die Dateien im Code-Editor von Cloud Shell oder in einem anderen Editor bearbeiten. Klicken Sie in der oberen Leiste in der Cloud Shell-Sitzung auf Editor öffnen. Daraufhin wird ein neuer Tab geöffnet. Falls Sie dazu aufgefordert werden, klicken Sie auf In neuem Fenster öffnen, um den Code-Editor zu starten:

  1. Wechseln Sie dann ins Arbeitsverzeichnis lab01:
cd pet-theory/lab01

Das Verzeichnis enthält Patricks Datei package.json. In dieser Datei sind die von Ihrem Node.js-Projekt benötigten Pakete aufgelistet, sodass Ihr Build reproduzierbar bleibt und sich einfacher mit anderen teilen lässt.

Hier sehen Sie ein Beispiel einer solchen Datei:

{ "name": "lab01", "version": "1.0.0", "description": "This is lab01 of the Pet Theory labs", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "Patrick - IT", "license": "MIT", "dependencies": { "csv-parse": "^5.5.3" } }

Nachdem Patrick seinen Quellcode importiert hat, fragt er Ruby, welche Pakete er für die Migration benötigt.

Patrick, IT-Administrator

Hallo Ruby,

mein Code für die alte Datenbank erstellt einfach nur eine CSV-Datei, die für den Import verwendet werden kann. Muss ich sonst noch etwas herunterladen, bevor ich loslegen kann?

Patrick

Ruby, Softwareberaterin

Hallo Patrick,

ich schlage vor, du verwendest eines der vielen @google-cloud-Node-Pakete für die Interaktion mit Firestore.

Dann brauchst du nur noch ein paar Kleinigkeiten anzupassen, weil der Großteil des Codes schon steht.

Ruby

Damit Patricks Code in die Firestore-Datenbank schreiben kann, müssen Sie einige zusätzliche Peer-Abhängigkeiten installieren.

  1. Führen Sie hierzu den folgenden Befehl aus:
npm install @google-cloud/firestore
  1. Sie müssen ein zusätzliches Modul installieren, damit über die App Logs in Cloud Logging geschrieben werden können:
npm install @google-cloud/logging

Nachdem der Befehl erfolgreich ausgeführt wurde, wird die Datei package.json automatisch um die neuen Peer-Abhängigkeiten ergänzt und sieht dann so aus:

... "dependencies": { "@google-cloud/firestore": "^7.3.0", "@google-cloud/logging": "^11.0.0", "csv-parse": "^5.5.3" }

Als Nächstes sehen wir uns das Skript an, mit dem die CSV-Datei ausgelesen und für jede Zeile in der CSV-Datei ein Datensatz in Firestore geschrieben wird. Patricks ursprüngliche Anwendung sehen Sie hier:

const csv = require('csv-parse'); const fs = require('fs'); function writeToDatabase(records) { records.forEach((record, i) => { console.log(`ID: ${record.id} Email: ${record.email} Name: ${record.name} Phone: ${record.phone}`); }); return ; } async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (e) { console.error('Error parsing CSV:', e); return; } try { console.log(`Call write to Firestore`); await writeToDatabase(records); console.log(`Wrote ${records.length} records`); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); } if (process.argv.length < 3) { console.error('Please include a path to a csv file'); process.exit(1); } importCsv(process.argv[2]).catch(e => console.error(e));

Mit dem Code werden Daten aus einer verarbeiteten CSV-Datei in die alte Datenbank importiert. Sie müssen den Code also nun so ändern, dass die Daten in die Firestore-Datenbank geschrieben werden.

  1. Öffnen Sie die Datei pet-theory/lab01/importTestData.js.

Um in der Anwendung auf die Firestore API zu verweisen, fügen Sie der vorhandenen Codebasis die Peer-Abhängigkeit hinzu.

  1. Fügen Sie also die folgende Firestore-Abhängigkeit in Zeile 3 der Datei ein:
const { Firestore } = require("@google-cloud/firestore");

Der Anfang der Datei sollte so aussehen:

const csv = require('csv-parse'); const fs = require('fs'); const { Firestore } = require("@google-cloud/firestore"); // Add this

Die Integration mit der Firestore-Datenbank gelingt mit wenigen Zeilen Code. Ruby hat Ihnen und Patrick zu diesem Zweck ein Codebeispiel zukommen lassen.

  1. Fügen Sie den folgenden Code unterhalb von Zeile 34 bzw. der Bedingung if (process.argv.length < 3) ein:
async function writeToFirestore(records) { const db = new Firestore({ // projectId: projectId }); const batch = db.batch() records.forEach((record)=>{ console.log(`Write: ${record}`) const docRef = db.collection("customers").doc(record.email); batch.set(docRef, record, { merge: true }) }) batch.commit() .then(() => { console.log('Batch executed') }) .catch(err => { console.log(`Batch error: ${err}`) }) return }

Das oben gezeigte Code-Snippet deklariert ein neues Datenbankobjekt, das auf die Datenbank verweist, die zuvor in diesem Lab erstellt wurde. Die Funktion verwendet einen Batchprozess, der jeden Datensatz einzeln verarbeitet und basierend auf der hinzugefügten Kennung einen Dokumentverweis festlegt. Am Ende der Funktion wird für den Batchinhalt ein Commit durchgeführt, d. h. der Inhalt wird in die Datenbank geschrieben.

  1. Ändern Sie die Funktion importCsv. Fügen Sie den Funktionsaufruf writeToFirestore ein und entfernen Sie den Aufruf writeToDatabase. Das sollte so aussehen:
async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (err) { console.error('Error parsing CSV:', err); return; } try { console.log(`Call write to Firestore`); await writeToFirestore(records); // await writeToDatabase(records); console.log(`Wrote ${records.length} records`); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); }
  1. Fügen Sie eine Logging-Funktion zur Anwendung hinzu. Um in der Anwendung die Logging API zu referenzieren, weisen Sie der vorhandenen Codebasis die Peer-Abhängigkeit zu. Fügen Sie ganz oben in der Datei unterhalb der anderen „require“-Anweisungen folgende Zeile ein:
const { Logging } = require('@google-cloud/logging');

Der Anfang der Datei sollte so aussehen:

const csv = require('csv-parse'); const fs = require('fs'); const { Firestore } = require("@google-cloud/firestore"); const { Logging } = require('@google-cloud/logging');
  1. Fügen Sie die folgenden konstanten Variablen unterhalb der oben genannten Zeilen hinzu (ca. Zeile 5) und initialisieren Sie den Logging-Client:
const logName = "pet-theory-logs-importTestData"; // Creates a Logging client const logging = new Logging(); const log = logging.log(logName); const resource = { type: "global", };
  1. Fügen Sie in der Funktion importCsv direkt unter der Zeile „console.log(Wrote ${records.length} records);“ Code für das Schreiben der Logs ein:
// A text log entry success_message = `Success: importTestData - Wrote ${records.length} records`; const entry = log.entry( { resource: resource }, { message: `${success_message}` } ); log.write([entry]);

Nach diesen Anpassungen sollte der Codeblock der Funktion importCsv so aussehen:

async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (err) { console.error('Error parsing CSV:', err); return; } try { console.log(`Call write to Firestore`); await writeToFirestore(records); // await writeToDatabase(records); console.log(`Wrote ${records.length} records`); // A text log entry success_message = `Success: importTestData - Wrote ${records.length} records`; const entry = log.entry( { resource: resource }, { message: `${success_message}` } ); log.write([entry]); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); }

Wird der Anwendungscode jetzt ausgeführt, wird die Firestore-Datenbank mit den Daten aus der CSV-Datei aktualisiert. Die Funktion importCsv orientiert sich am Dateinamen und verarbeitet den Dateiinhalt zeilenweise. Jede verarbeitete Zeile wird an die Firestore-Funktion writeToFirestore gesendet, die neue Datensätze in die Kundendatenbank schreibt.

Hinweis: In einer Produktionsumgebung würden Sie Ihre eigene Version des Importskripts schreiben.

Aufgabe 3: Testdaten erstellen

Jetzt geht es an den Datenimport! Patrick schreibt Ruby, weil er Bedenken hat, für den Testlauf tatsächliche Kundendaten zu verwenden…

Patrick, IT-Administrator

Hallo Ruby,

ich glaube es wäre besser, für Tests keine Kundendaten zu verwenden. Einerseits müssen wir prüfen, ob unser Skript für den Datenimport funktioniert, andererseits soll natürlich der Datenschutz für den Kunden gewährleistet sein.

Fällt dir eine andere Möglichkeit für einen Test ein?

Patrick

Ruby, Softwareberaterin

Hallo Patrick,

du hast natürlich völlig recht. Ein schwieriges Thema, weil die Kundendaten personenidentifizierbare Informationen enthalten könnten, auch PII genannt.

Ich kann dir Code zur Verfügung stellen, mit dem sich Pseudo-Kundendaten erzeugen lassen. Mit denen können wir dann das Importskript testen.

Ruby

Helfen Sie Patrick dabei, diesen Pseudo-Zufallsdatengenerator zum Laufen zu bringen.

  1. Installieren Sie zuerst die Bibliothek "faker", die von dem Skript verwendet wird, das die falschen Kundendaten erzeugt. Aktualisieren Sie mit dem folgenden Befehl die Abhängigkeit in package.json:
npm install faker@5.5.3
  1. Öffnen Sie jetzt im Code-Editor die Datei createTestData.js und sehen Sie sich den Code an. Er sollte so aussehen:
const fs = require('fs'); const faker = require('faker'); function getRandomCustomerEmail(firstName, lastName) { const provider = faker.internet.domainName(); const email = faker.internet.email(firstName, lastName, provider); return email.toLowerCase(); } async function createTestData(recordCount) { const fileName = `customers_${recordCount}.csv`; var f = fs.createWriteStream(fileName); f.write('id,name,email,phone\n') for (let i=0; i<recordCount; i++) { const id = faker.datatype.number(); const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const name = `${firstName} ${lastName}`; const email = getRandomCustomerEmail(firstName, lastName); const phone = faker.phone.phoneNumber(); f.write(`${id},${name},${email},${phone}\n`); } console.log(`Created file ${fileName} containing ${recordCount} records.`); } recordCount = parseInt(process.argv[2]); if (process.argv.length != 3 || recordCount < 1 || isNaN(recordCount)) { console.error('Include the number of test data records to create. Example:'); console.error(' node createTestData.js 100'); process.exit(1); } createTestData(recordCount);
  1. Fügen Sie Logging für die Codebasis hinzu. Fügen Sie in Zeile 3 die folgende Referenz für das Logging API-Modul aus dem Anwendungscode hinzu:
const { Logging } = require("@google-cloud/logging");

Der Anfang der Datei sollte jetzt so aussehen:

const fs = require("fs"); const faker = require("faker"); const { Logging } = require("@google-cloud/logging"); //add this
  1. Fügen Sie nun direkt unter den const-Anweisungen einige konstante Variablen hinzu und initialisieren Sie den Logging-Client:
const logName = "pet-theory-logs-createTestData"; // Creates a Logging client const logging = new Logging(); const log = logging.log(logName); const resource = { // This example targets the "global" resource for simplicity type: "global", };
  1. Fügen Sie in der Funktion createTestData unterhalb der Zeile „console.log(Created file ${fileName} containing ${recordCount} records.);“ Code ein, mit dem die Logs geschrieben werden:
// A text log entry const success_message = `Success: createTestData - Created file ${fileName} containing ${recordCount} records.`; const entry = log.entry( { resource: resource }, { name: `${fileName}`, recordCount: `${recordCount}`, message: `${success_message}`, } ); log.write([entry]);
  1. Danach sollte der Codeblock der Funktion createTestData so aussehen:
async function createTestData(recordCount) { const fileName = `customers_${recordCount}.csv`; var f = fs.createWriteStream(fileName); f.write('id,name,email,phone\n') for (let i=0; i<recordCount; i++) { const id = faker.datatype.number(); const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const name = `${firstName} ${lastName}`; const email = getRandomCustomerEmail(firstName, lastName); const phone = faker.phone.phoneNumber(); f.write(`${id},${name},${email},${phone}\n`); } console.log(`Created file ${fileName} containing ${recordCount} records.`); // A text log entry const success_message = `Success: createTestData - Created file ${fileName} containing ${recordCount} records.`; const entry = log.entry( { resource: resource }, { name: `${fileName}`, recordCount: `${recordCount}`, message: `${success_message}`, } ); log.write([entry]); }
  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Datei customers_1000.csv mit 1.000 Testdatensätzen zu erstellen:
node createTestData 1000

Die Ausgabe sollte ungefähr so aussehen:

Created file customers_1000.csv containing 1000 records.
  1. Öffnen Sie die Datei customers_1000.csv und prüfen Sie, ob die Testdaten erzeugt wurden.

Abgeschlossene Aufgabe testen

Klicken Sie auf Fortschritt prüfen. Wenn die Testdaten für die Firestore-Datenbank erstellt wurden, erhalten Sie ein Testergebnis.

Testdaten für die Firestore-Datenbank erstellen

Aufgabe 4: Testdaten importieren

  1. Verwenden Sie zum Testen der Importfunktion das Importskript und die Testdaten, die Sie bereits erstellt haben:
node importTestData customers_1000.csv

Die Ausgabe sollte ungefähr so aussehen:

Writing record 500 Writing record 1000 Wrote 1000 records
  1. Es kann sein, dass Sie die folgende Fehlermeldung erhalten:
Error: Cannot find module 'csv-parse'

Führen Sie dann den folgenden Befehl aus, um das Paket csv-parse zu Ihrer Umgebung hinzuzufügen:

npm install csv-parse
  1. Führen Sie den Befehl dann noch einmal aus. Sie sollten folgende Ausgabe erhalten:
Writing record 500 Writing record 1000 Wrote 1000 records

In den letzten Abschnitten haben Sie gemeinsam mit Patrick und Ruby Testdaten erzeugt und ein Skript für den Import dieser Daten in Firestore geschrieben. Patrick ist jetzt zuversichtlich, dass er mit dem Laden der Kundendaten in die Firestore-Datenbank gut zurechtkommt.

Abgeschlossene Aufgabe testen

Klicken Sie auf Fortschritt prüfen. Wenn Sie die Testdaten erfolgreich in die Firestore-Datenbank importiert haben, erhalten Sie ein Testergebnis.

Testdaten in die Firestore-Datenbank importieren

Aufgabe 5: Daten in Firestore überprüfen

Dank Ihrer Unterstützung und mit Tipps von Ruby konnte Patrick die Testdaten in die Firestore-Datenbank migrieren. Öffnen Sie Firestore und sehen Sie sich das Ergebnis an!

  1. Kehren Sie zum Tab „Cloud Console“ zurück. Klicken Sie im Navigationsmenü () auf Alle Produkte anzeigen und wählen Sie unter Datenbanken die Option Firestore aus. Klicken Sie anschließend auf Standarddatenbank und dann auf das Stiftsymbol.

  2. Geben Sie /customers ein und drücken Sie die Eingabetaste.

  3. Aktualisieren Sie den Browser-Tab. Die folgende Liste mit erfolgreich migrierten Kunden sollte zu sehen sein:

Glückwunsch!

Im Verlauf dieses Labs konnten Sie praktische Erfahrungen mit Firestore sammeln. Sie haben Pseudo-Kundendaten für Testzwecke generiert und dann ein Skript ausgeführt, mit dem sie in Firestore importiert wurden. Anschließend haben Sie die Daten in Firestore über die Cloud Console bearbeitet.

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 6. Mai 2025 aktualisiert

Lab zuletzt am 6. Mai 2025 getestet

© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.