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

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Banner für Pet Theory

Übersicht

Vor zwölf Jahren hat Lily die Tierklinikkette Pet Theory gegründet, die in den letzten Jahren stark gewachsen ist. Das alte Terminplanungssystem kann die gestiegene Arbeitslast jedoch nicht mehr bewältigen. Lily bittet Sie deshalb, 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 hat sich daher für eine serverlose Lösung entschieden.

Ruby wurde als Beraterin engagiert, um Pet Theory beim Wechsel auf eine serverlose Architektur zu unterstützen. Nach einem Vergleich verschiedener serverloser Datenbankoptionen 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-Anwendungen und ist auf Mobilgeräten sowie im Web offline nutzbar. Es kann also eine responsive Anwendung entwickelt werden, die unabhängig von Netzwerklatenz und Internetverbindung funktioniert.

In diesem Lab unterstützen Sie Patrick dabei, die aktuellen Datenbestände von Pet Theory in eine Cloud Firestore-Datenbank hochzuladen. Patrick arbeitet eng mit Ruby zusammen, um dieses Ziel zu erreichen.

Architektur

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

Architekturdiagramm zur Migration in eine Firestore-Datenbank

Ziele

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 mit dem Bearbeiten von Dateien vertraut sein. Sie können dafür Ihren bevorzugten Texteditor verwenden (z. B. nano oder vi) oder den Code-Editor von Cloud Shell nutzen. Dieser befindet sich in der oberen Funktionsleiste:

Schaltfläche „Editor öffnen“

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. Symbol für das Navigationsmenü und Suchfeld

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 Symbol für Cloud Shell-Aktivierung.

  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

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 dabei helfen? Ich weiß nicht so genau, wie ich sie einrichten soll.

Patrick

Ruby

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 in der Cloud Console im Navigationsmenü (console_nav_small.png) 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 Offen aus.

  6. Klicken Sie unter „Standorttyp“ auf Region und wählen Sie dann in der Liste die Lab-Region 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

Ruby, Softwareberaterin

Hallo Patrick,

die Einrichtung der Firestore-Datenbank hat prima funktioniert! 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 in Firestone zu migrieren.

Ruby

Patrick

Patrick, IT-Administrator

Hallo Ruby,

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

Ich hoffe, der Datenbankimport ist einfacher als mit der alten Datenbank. Das war 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 in der alten Datenbank.

Patrick sendet eine Nachricht an Ruby…

Patrick

Patrick, IT-Administrator

Hallo Ruby,

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

Ich habe die alte Datenbank als CSV-Datei exportiert. Ich bin mir aber nicht sicher, wie ich die Daten in die Firestore-Datenbank importieren kann.

Hast du einen Tipp für mich?

Patrick

Ruby

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. Helfen Sie Patrick, eine Anwendung zu erstellen, 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 im Cloud Shell-Terminal 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 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:

Schaltfläche „Editor öffnen“

  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 package.json-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

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

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 zusätzliche Peer-Abhängigkeiten installieren.

  1. Führen Sie hierzu folgenden Befehl aus:
npm install @google-cloud/firestore
  1. Sie müssen ein zusätzliches Modul installieren, damit über die Anwendung 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.11.3", "@google-cloud/logging": "^11.2.0", "csv-parse": "^5.5.3" }

Als Nächstes sehen wir uns das Script 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 diesem Code werden Daten aus einer verarbeiteten CSV-Datei in die alte Datenbank importiert. Ändern Sie nun den Code so, 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 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 Codezeilen. Ruby hat Ihnen und Patrick zu diesem Zweck eine Codevorlage zukommen lassen.

  1. Fügen Sie folgenden Code unterhalb von Zeile 34 bzw. nach 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 eine Batchverarbeitung, die 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, sodass der Funktionsaufruf zu writeToFirestore hinzugefügt und der Aufruf an writeToDatabase entfernt wird. Der Code 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 über die Anwendung die Logging API zu referenzieren, weisen Sie der vorhandenen Codebasis die Peer-Abhängigkeit zu. Fügen Sie 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 einige konstante 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 direkt unter der Zeile „console.log(Wrote ${records.length} records);“ Code ein für das Schreiben der Logs in die Funktion importCsv:
// 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 Importscripts schreiben.

Helfen Sie Patrick, sein neues Teammitglied auf den neuesten Stand zu bringen

Bis vor Kurzem war Patrick der Einzige im Ops-Team von Pet Theory. Die serverlose Cloud Firestore-Datenbanklösung ist zwar wartungsarm, aber Patricks Chefin Lily hat eine weitere Person eingestellt, die ihn unterstützen soll. Lily möchte, dass Sie das neue Teammitglied bei der Einarbeitung unterstützen.

Dank der KI-basierten Funktionen von Gemini Code Assist können Sie produktiver arbeiten und müssen weniger Kontextwechsel vornehmen, da Gemini Code Assist KI-basierte intelligente Aktionen direkt im Code-Editor bietet.

Gemini Code Assist in der Cloud Shell-IDE aktivieren

Sie können Gemini Code Assist in einer integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) wie Cloud Shell verwenden, um Unterstützung beim Programmieren zu erhalten oder Probleme mit Ihrem Code zu lösen. Bevor Sie Gemini Code Assist verwenden können, müssen Sie das Tool aktivieren.

  1. Aktivieren Sie in Cloud Shell die Gemini for Google Cloud API mit dem folgenden Befehl:
gcloud services enable cloudaicompanion.googleapis.com
  1. Klicken Sie in der Cloud Shell-Symbolleiste auf Editor öffnen.
Hinweis: Klicken Sie zum Öffnen des Cloud Shell-Editors in der Cloud Shell-Symbolleiste auf Editor öffnen. Sie können zwischen Cloud Shell und dem Code-Editor wechseln. Klicken Sie dazu entsprechend auf Editor öffnen oder Terminal öffnen.
  1. Klicken Sie im linken Bereich auf das Symbol Einstellungen und suchen Sie unter Einstellungen nach Gemini Code Assist.

  2. Suchen Sie nach Gemini Code Assist: Aktivieren und prüfen Sie, ob das Kästchen ausgewählt ist. Schließen Sie dann die Einstellungen.

  3. Klicken Sie in der Statusleiste unten auf dem Bildschirm auf Cloud Code – kein Projekt.

  4. Autorisieren Sie das Plug-in wie beschrieben. Wenn kein Projekt automatisch ausgewählt wurde, klicken Sie auf Google Cloud-Projekt auswählen und wählen Sie aus.

  5. Prüfen Sie, ob Ihr Google Cloud-Projekt () in der Cloud Code-Statusmeldung in der Statusleiste angezeigt wird.

Sie bitten Gemini Code Assist, das Node.js-Script importTestData.js dem neuen Ops-Teammitglied zu erklären.

  1. Wenn das Node.js-Script importTestData.js im Dateiverzeichnis pet-theory/lab01 des Cloud Shell-Code-Editors geöffnet und Gemini Code Assist in der IDE aktiviert ist, sehen Sie das Symbol Gemini Code Assist: Intelligente Aktionen oben rechts im Editor.

  2. Klicken Sie auf das Gemini Code Assist: Intelligente Aktionen-Symbol Gemini Code Assist: Intelligente Aktionen und wählen Sie Erkläre mir das aus.

  3. Gemini Code Assist öffnet ein Chatfenster mit dem vorausgefüllten Prompt Erkläre mir das. Ersetzen Sie im Inline-Textfeld des Code Assist-Chats den vorausgefüllten Prompt durch folgenden Text und klicken Sie auf Senden:

You are a senior software engineer on the Ops team at the Pet Theory chain of veterinary clinics. Analyze the Node.js script importTestData.js and provide a detailed explanation for a member who is new to the team. 1. Describe the primary purpose of the script. 2. Break down the functionality of each of the key functions: importCsv and writeToFirestore. 3. Explain how the script handles the CSV file and what libraries are used for this process. 4. Detail how the data is written to Firestore and how it uses a batch operation. 5. Explain the purpose of the Google Cloud Logging integration. For the suggested improvements, don't update this file.

Die Erklärung für den Code im Node.js-Script importTestData.js wird im Gemini Code Assist-Chat angezeigt.

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

Patrick, IT-Administrator

Hallo Ruby,

ich glaube es wäre besser, für die Tests keine Kundendaten zu verwenden. Einerseits müssen wir prüfen, ob unser Script 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 zum Testen ein?

Patrick

Ruby

Ruby, Softwareberaterin

Hallo Patrick,

du hast völlig recht. Das ist ein heikles Thema, denn die Kundendaten können PII enthalten, also personenidentifizierbare Informationen.

Ich kann dir Starter-Code zur Verfügung stellen, mit dem du Pseudo-Kundendaten erzeugen kannst. Damit können wir dann das Importscript testen.

Ruby

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

  1. Installieren Sie zuerst die Bibliothek "faker", die von dem Script verwendet wird, das die falschen Kundendaten erzeugt. Ändern Sie mit folgendem 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 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 unterhalb der Zeile „console.log(Created file ${fileName} containing ${recordCount} records.);“ folgenden Code hinzu, damit die Logs in die Funktion createTestData 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]); }

Einarbeitung des Teammitglieds fortsetzen

Gemini Code Assist ist immer zur Stelle und bietet KI-basierte Unterstützung beim Programmieren.

In diesem Abschnitt bitten Sie Gemini Code Assist, Ihnen bei der Erklärung eines weiteren Node.js-Scripts zu helfen, damit das Onboarding des neuen Ops-Teammitglieds fortgesetzt werden kann.

  1. Klicken Sie bei geöffnetem Node.js-Script createTestData.js im Dateiverzeichnis pet-theory/lab01 des Cloud Shell-Code-Editors auf das Gemini Code Assist: Intelligente Aktionen-Symbol Gemini Code Assist: Intelligente Aktionen und wählen Sie Erkläre mir das aus.

  2. Gemini Code Assist öffnet ein Chatfenster mit dem vorausgefüllten Prompt Erkläre mir das. Ersetzen Sie im Inline-Textfeld des Code Assist-Chats den vorausgefüllten Prompt durch folgenden Text und klicken Sie auf Senden:

You are a senior software engineer on the Ops team at the Pet Theory chain of veterinary clinics. Analyze the Node.js script createTestData.js and provide a detailed explanation for a new team member. 1. Describe the overall purpose of the script. 2. Explain the role of the "createTestData" function, detailing how it uses the "faker" library to generate data. 3. Describe how the script writes data to a CSV file. 4. Explain the purpose of the Google Cloud Logging integration and what information is logged. 5. Explain the command-line argument handling at the end of the script. For the suggested improvements, don't update this file.

Die Erklärung für den Code im Node.js-Script createTestData.js wird im Gemini Code Assist-Chat angezeigt.

  1. Führen Sie im Cloud Shell-Terminal 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 Importscript und die Testdaten, die Sie zuvor 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 folgende Fehlermeldung erhalten:
Error: Cannot find module 'csv-parse'

Führen Sie dann 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.

Ausgabe:

Writing record 500 Writing record 1000 Wrote 1000 records

In den letzten Abschnitten haben Sie gemeinsam mit Patrick und Ruby Testdaten erzeugt und ein Script 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 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ü (console_nav_small.png) 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. Stiftsymbol

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

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

Kundenliste

Glückwunsch!

Im Verlauf dieses Labs haben Sie praktische Erfahrungen mit Firestore gesammelt und gelernt, wie Sie die intelligenten Aktionen von Gemini Code Assist direkt in der IDE verwenden. Sie haben Pseudo-Kundendaten für Testzwecke generiert und ein Script ausgeführt, um sie in Firestore zu importieren. 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 27. August 2025 aktualisiert

Lab zuletzt am 27. August 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

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

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.