arrow_back

Mengimpor Data ke Database Firestore

Login Gabung
Dapatkan akses ke 700+ lab dan kursus

Mengimpor Data ke Database Firestore

Lab 30 menit universal_currency_alt 1 Kredit show_chart Pengantar
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP642

Logo lab mandiri Google Cloud

Banner Pet Theory

Ringkasan

Dua belas tahun lalu, Lily memulai jaringan klinik hewan Pet Theory. Dalam beberapa tahun terakhir, jaringan Pet Theory telah berkembang pesat. Namun, sistem penjadwalan janji temu lama mereka tidak mampu menangani beban yang meningkat, jadi Lily meminta Anda untuk membangun sistem berbasis cloud yang dapat diskalakan dengan lebih baik dibandingkan solusi lama.

Karena Pet Theory hanya memiliki satu staf operasional, yaitu Patrick, mereka membutuhkan solusi yang tidak perlu banyak pemeliharaan berkelanjutan. Mereka memutuskan memilih teknologi serverless.

Ruby dipekerjakan sebagai konsultan untuk membantu Pet Theory melakukan transisi ke serverless. Setelah membandingkan beberapa opsi database serverless, mereka memutuskan memilih Cloud Firestore. Karena Firestore bersifat serverless, kapasitas tidak perlu disediakan sebelumnya. Artinya, tidak akan ada risiko batas penyimpanan atau operasi. Firestore menjaga data Anda selalu sinkron di seluruh aplikasi klien melalui pemroses real-time dan menawarkan dukungan offline untuk perangkat seluler dan web. Dengan demikian, Anda dapat membangun aplikasi responsif yang tetap berfungsi terlepas dari faktor latensi jaringan atau konektivitas internet.

Di lab ini, Anda akan membantu Patrick mengupload data Pet Theory yang ada ke database Cloud Firestore. Patrick bekerja sama dengan Ruby untuk melakukannya.

Arsitektur

Diagram ini memberikan ringkasan layanan yang akan Anda gunakan dan bagaimana layanan tersebut terhubung satu sama lain:

Diagram arsitektur Migrasi ke Database Firestore

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Menyiapkan Firestore di Google Cloud.
  • Menulis kode impor database.
  • Membuat koleksi data pelanggan untuk pengujian.
  • Mengimpor data uji pelanggan ke Firestore.

Prasyarat

Ini adalah lab tingkat pendahuluan. Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan shell. Pengalaman dalam menggunakan Firebase akan bermanfaat, tetapi tidak wajib.

Anda juga harus sudah terbiasa mengedit file. Anda dapat menggunakan editor teks favorit (seperti nano, vi, dll.) atau juga dapat meluncurkan editor kode dari Cloud Shell, yang dapat ditemukan di menu atas:

Tombol Open Editor

Setelah Anda siap, scroll ke bawah dan ikuti langkah-langkah berikut untuk menyiapkan lingkungan lab Anda.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

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

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

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

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Menyiapkan Firestore di Google Cloud

Tugas Patrick adalah mengupload data Pet Theory yang ada ke database Cloud Firestore. Untuk melakukannya, ia akan bekerja sama dengan Ruby. Ruby menerima pesan dari Patrick di IT...

Patrick

Patrick, Admin IT

Halo Ruby,

Langkah pertama kita untuk beralih ke serverless adalah membuat database Firestore dengan Google Cloud. Dapatkah Anda membantu mengerjakan tugas ini? Saya tidak begitu terbiasa dengan pekerjaan ini.

Patrick

Ruby

Ruby, Konsultan Software

Halo Patrick,

Tentu saja, saya akan dengan senang hati membantu Anda. Saya akan mengirimkan beberapa resource untuk memulai. Silakan hubungi saya kembali setelah Anda selesai membuat database.

Ruby

Bantu Patrick menyiapkan database Firestore melalui Konsol Cloud.

  1. Di Konsol Cloud, pada Navigation menu (console_nav_small.png), klik View All Products, dan di bagian Databases, pilih Firestore.

  2. Klik Create a Firestore database.

  3. Pilih Standard Edition.

  4. Di bagian opsi Configuration, pilih Firestore Native.

  5. Untuk Security rules, pilih Open.

  6. Di Location type, klik Region, lalu pilih region lab yang ditetapkan saat lab dimulai dari daftar.

    Catatan: Jika daftar region tidak terisi, muat ulang browser atau coba wizard lagi dari menu Konsol Cloud.
Catatan: Kedua mode memiliki performa tinggi dengan konsistensi kuat, tetapi keduanya terlihat berbeda dan dioptimalkan untuk kasus penggunaan yang berbeda.
  1. Tetap gunakan nilai default untuk setelan lainnya, lalu klik Create Database.

Setelah tugas selesai, Ruby mengirim email kepada Patrick...

Ruby

Ruby, Konsultan Software

Halo Patrick,

Anda berhasil menyiapkan database Firestore. Untuk mengelola akses database, kita akan menggunakan Akun Layanan yang dibuat secara otomatis dengan izin akses yang diperlukan.

Sekarang kita siap bermigrasi dari database lama ke Firestore.

Ruby

Patrick

Patrick, Admin IT

Halo Ruby,

Terima kasih atas bantuannya. Penyiapan database Firestore sangat mudah.

Saya harap proses impor database akan lebih mudah dibandingkan dengan database lama, yang cukup rumit dan membutuhkan banyak langkah.

Patrick

Tugas 2. Menulis kode impor database

Database Cloud Firestore yang baru sudah ada, tetapi masih kosong. Data pelanggan Pet Theory masih berada di database lama.

Patrick mengirimkan pesan kepada Ruby...

Patrick

Patrick, Admin IT

Halo Ruby,

Manajer saya ingin mulai memigrasikan data pelanggan ke database Firestore yang baru.

Saya telah mengekspor file CSV dari database lama kami, tetapi saya tidak tahu bagaimana cara mengimpor data ini ke Firestore.

Dapatkah Anda membantu saya?

Patrick

Ruby

Ruby, Konsultan Software

Halo Patrick,

Tentu saja. Ayo kita adakan rapat untuk membahas apa saja yang harus dilakukan.

Ruby

Seperti yang dikatakan Patrick, data pelanggan akan tersedia dalam file CSV. Bantu Patrick membuat aplikasi yang membaca kumpulan data pelanggan dari file CSV dan menuliskannya ke Firestore. Karena Patrick terbiasa bekerja dengan JavaScript, bangun aplikasi ini menggunakan runtime Node.js JavaScript.

  1. Di terminal Cloud Shell, jalankan perintah berikut untuk membuat clone repositori Pet Theory:
git clone https://github.com/rosera/pet-theory
  1. Gunakan Editor Kode Cloud Shell (atau editor pilihan Anda) untuk mengedit file Anda. Dari menu atas sesi Cloud Shell Anda, klik Open Editor, dan tab baru akan terbuka. Jika diminta, klik Open in a new window untuk meluncurkan editor kode:

Tombol Open Editor

  1. Kemudian ubah direktori kerja Anda saat ini menjadi lab01:
cd pet-theory/lab01

Di direktori tersebut, Anda dapat melihat package.json milik Patrick. File ini berisi daftar paket yang menjadi dependensi project Node.js Anda dan membuat build Anda dapat direproduksi, sehingga lebih mudah untuk dibagikan kepada orang lain.

Berikut contoh package.json:

{ "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" } }

Setelah Patrick mengimpor kode sumber, ia menghubungi Ruby untuk mengetahui paket apa saja yang ia perlukan agar migrasi berhasil.

Patrick

Patrick, Admin IT

Halo Ruby,

Kode yang saya gunakan untuk database lama cukup sederhana, hanya membuat CSV yang siap untuk proses impor. Adakah yang perlu saya download sebelum memulai?

Patrick

Ruby

Ruby, Konsultan Software

Halo Patrick,

Saya sarankan untuk menggunakan salah satu dari sekian banyak paket Node @google-cloud untuk berinteraksi dengan Firestore.

Kita hanya perlu melakukan sedikit perubahan pada kode yang ada karena pekerjaan yang berat telah ditangani.

Ruby

Untuk mengizinkan kode Patrick menulis ke database Firestore, Anda perlu menginstal beberapa dependensi pembanding tambahan.

  1. Jalankan perintah berikut untuk melakukannya:
npm install @google-cloud/firestore
  1. Agar aplikasi dapat menulis log ke Cloud Logging, instal modul tambahan:
npm install @google-cloud/logging

Setelah perintah berhasil diselesaikan, package.json akan otomatis diupdate untuk menyertakan dependensi pembanding baru, dan akan terlihat seperti ini.

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

Sekarang saatnya melihat skrip yang membaca file CSV pelanggan dan menulis satu kumpulan data di Firestore untuk tiap baris dalam file CSV. Aplikasi asli Patrick tampak seperti berikut:

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));

Aplikasi ini mengambil output dari file CSV input dan mengimpornya ke dalam database lama. Berikutnya, perbarui kode ini untuk menulis ke Firestore.

  1. Buka file pet-theory/lab01/importTestData.js.

Untuk merujuk Firestore API melalui aplikasi, Anda perlu menambahkan dependensi pembanding ke codebase yang ada.

  1. Tambahkan dependensi Firestore berikut ke baris 3 pada file:
const { Firestore } = require("@google-cloud/firestore");

Pastikan bagian atas file terlihat seperti berikut:

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

Integrasi dengan database Firestore dapat dicapai dengan beberapa baris kode. Ruby telah membagikan beberapa kode template kepada Anda dan Patrick untuk integrasi tersebut.

  1. Tambahkan kode berikut di bawah baris 34, atau setelah kondisional if (process.argv.length < 3):
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 }

Cuplikan kode di atas mendeklarasikan objek database baru, yang merujuk database yang telah dibuat sebelumnya di lab. Fungsi ini menggunakan proses batch di mana tiap kumpulan data diproses secara bergantian dan diberi rujukan dokumen berdasarkan ID yang ditambahkan. Pada akhir fungsi, konten batch di-commit (ditulis) ke database.

  1. Update fungsi importCsv untuk menambahkan panggilan fungsi untuk writeToFirestore dan hapus panggilan untuk writeToDatabase. Kodenya akan terlihat seperti berikut:
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. Tambahkan logging untuk aplikasi. Untuk merujuk Logging API melalui aplikasi, tambahkan dependensi pembanding ke codebase yang ada. Tambahkan baris berikut persis di bawah pernyataan require lainnya di bagian atas file:
const { Logging } = require('@google-cloud/logging');

Pastikan bagian atas file terlihat seperti berikut:

const csv = require('csv-parse'); const fs = require('fs'); const { Firestore } = require("@google-cloud/firestore"); const { Logging } = require('@google-cloud/logging');
  1. Tambahkan beberapa variabel konstan dan lakukan inisialisasi pada klien Logging. Tambahkan persis di bawah baris yang tercantum di atas dalam file (~baris 5), seperti ini:
const logName = "pet-theory-logs-importTestData"; // Creates a Logging client const logging = new Logging(); const log = logging.log(logName); const resource = { type: "global", };
  1. Tambahkan kode untuk menulis log dalam fungsi importCsv persis di bawah baris "console.log(Wrote ${records.length} records);" yang seharusnya akan terlihat seperti berikut:
// A text log entry success_message = `Success: importTestData - Wrote ${records.length} records`; const entry = log.entry( { resource: resource }, { message: `${success_message}` } ); log.write([entry]);

Setelah semua update ini, blok kode fungsi importCsv Anda seharusnya akan terlihat seperti berikut:

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); }

Sekarang saat kode aplikasi dijalankan, database Firestore akan diupdate dengan konten file CSV. Fungsi importCsv memerlukan nama file dan mengurai konten secara baris per baris. Tiap baris yang diproses kini dikirim ke fungsi Firestore writeToFirestore, tempat tiap kumpulan data baru ditulis ke database "customer".

Catatan: Dalam lingkungan produksi, Anda harus menulis versi skrip impor Anda sendiri.

Bantu anggota tim baru Patrick memahami tugasnya

Hingga saat ini, tim Operasional Pet Theory hanya terdiri dari satu orang, yaitu Patrick. Meskipun solusi database Cloud Firestore serverless tidak memerlukan banyak pemeliharaan, bos Patrick, Lily, kini telah merekrut satu orang lagi untuk membantu Patrick dalam tim. Lily ingin Anda membantu anggota tim baru tersebut memahami tugasnya.

Berkat fitur Gemini Code Assist yang didukung AI, Anda dapat lebih produktif sekaligus meminimalkan pengalihan konteks karena Gemini Code Assist menyediakan tindakan cerdas yang didukung AI langsung di editor kode Anda.

Mengaktifkan Gemini Code Assist di Cloud Shell IDE

Anda dapat menggunakan Gemini Code Assist di lingkungan pengembangan terintegrasi (IDE) seperti Cloud Shell untuk menerima panduan tentang kode atau menyelesaikan masalah dengan kode Anda. Sebelum mulai menggunakan Gemini Code Assist, Anda perlu mengaktifkannya.

  1. Di Cloud Shell, aktifkan Gemini for Google Cloud API dengan perintah berikut:
gcloud services enable cloudaicompanion.googleapis.com
  1. Klik Open Editor di toolbar Cloud Shell.
Catatan: Untuk membuka Cloud Shell Editor, klik Open Editor di toolbar Cloud Shell. Anda dapat beralih antara Cloud Shell dan Editor kode dengan mengklik Open Editor atau Open Terminal, sesuai kebutuhan.
  1. Di panel kiri, klik ikon Settings, lalu di tampilan Settings, cari Gemini Code Assist.

  2. Temukan dan pastikan kotak centang dipilih untuk Geminicodeassist: Enable, lalu tutup Settings.

  3. Klik Cloud Code - No Project di status bar di bagian bawah layar.

  4. Berikan otorisasi pada plugin seperti yang ditunjukkan. Jika project tidak dipilih secara otomatis, klik Select a Google Cloud Project, lalu pilih .

  5. Pastikan project Google Cloud Anda () ditampilkan dalam pesan status Cloud Code di status bar.

Anda memutuskan untuk meminta bantuan Gemini Code Assist dalam menjelaskan skrip Node.js importTestData.js kepada anggota tim Operasional yang baru.

  1. Dengan skrip Node.js importTestData.js terbuka di direktori file Editor Kode Cloud Shell pet-theory/lab01, dan Gemini Code Assist diaktifkan di IDE, lihat ikon Gemini Code Assist: Smart Actions yang ada di sudut kanan atas editor.

  2. Klik ikon Gemini Code Assist: Smart Actions Gemini Code Assist: Smart Actions, lalu pilih Explain this.

  3. Gemini Code Assist akan membuka panel chat dengan perintah yang telah diisi sebelumnya, yakni Explain this. Di kotak teks inline chat Code Assist, ganti perintah yang sudah terisi dengan perintah berikut, lalu klik Send:

Anda adalah software engineer senior di tim Operasional di jaringan klinik hewan Pet Theory. Analisis skrip Node.js importTestData.js lalu berikan penjelasan mendetail kepada anggota baru dalam tim. 1. Menjelaskan tujuan utama skrip. 2. Menguraikan fungsionalitas setiap fungsi utama: importCsv dan writeToFirestore. 3. Menjelaskan cara skrip menangani file CSV dan library apa yang digunakan untuk proses ini. 4. Menjelaskan cara data ditulis ke Firestore dan cara data menggunakan operasi batch. 5. Menjelaskan tujuan integrasi Google Cloud Logging. Untuk peningkatan yang disarankan, jangan update file ini.

Penjelasan untuk kode dalam skrip Node.js importTestData.js akan muncul di chat Gemini Code Assist.

Tugas 3. Membuat data pengujian

Saatnya mengimpor sejumlah data. Patrick menghubungi Ruby terkait kekhawatirannya menggunakan data pelanggan sebenarnya untuk pengujian...

Patrick

Patrick, Admin IT

Halo Ruby,

Saya pikir sebaiknya kita tidak menggunakan data pelanggan untuk pengujian. Kita perlu menjaga privasi pelanggan, tetapi kita juga harus yakin bahwa skrip impor data kita bekerja dengan benar.

Apakah Anda punya usulan cara alternatif untuk melakukan pengujian?

Patrick

Ruby

Ruby, Konsultan Software

Halo Patrick,

Benar sekali, Patrick. Ini adalah perkara yang rumit, karena data pelanggan dapat mencakup informasi identitas pribadi, atau PII.

Saya akan membagikan beberapa kode awal kepada Anda untuk membuat data pseudo pelanggan. Nanti kita dapat menggunakan data ini untuk menguji skrip impor.

Ruby

Bantu Patrick agar generator data pseudo-random ini dapat berjalan.

  1. Pertama, instal library “faker” yang akan digunakan oleh skrip yang menghasilkan data pelanggan palsu. Jalankan perintah berikut untuk mengupdate dependensi dalam package.json:
npm install faker@5.5.3
  1. Sekarang buka file bernama createTestData.js dengan editor kode dan periksa kodenya. Pastikan terlihat seperti berikut:
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. Tambahkan Logging untuk codebase. Pada baris 3, tambahkan rujukan berikut untuk modul Logging API dari kode aplikasi:
const { Logging } = require("@google-cloud/logging");

Kini bagian atas file akan terlihat seperti ini:

const fs = require("fs"); const faker = require("faker"); const { Logging } = require("@google-cloud/logging"); //add this
  1. Sekarang, tambahkan beberapa variabel konstan dan lakukan inisialisasi pada klien Logging. Tambahkan persis di bawah pernyataan const:
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. Tambahkan kode untuk menulis log dalam fungsi createTestData persis di bawah baris "console.log(Created file ${fileName} containing ${recordCount} records.);" yang akan terlihat seperti berikut:
// 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. Setelah diupdate, blok kode fungsi createTestData seharusnya akan terlihat seperti berikut:
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]); }

Lanjutkan orientasi anggota tim baru

Gemini Code Assist selalu siap membantu Anda dengan bantuan coding berteknologi AI kapan pun Anda membutuhkannya.

Di bagian ini, Anda akan meminta bantuan Gemini Code Assist untuk menjelaskan skrip Node.js lainnya guna melanjutkan orientasi anggota baru pada tim Operasional Anda.

  1. Dengan skrip Node.js createTestData.js terbuka di direktori file Editor Kode Cloud Shell pet-theory/lab01, klik ikon Gemini Code Assist: Smart Actions Gemini Code Assist: Smart Actions, lalu pilih Explain this.

  2. Gemini Code Assist akan membuka panel chat dengan perintah yang telah diisi sebelumnya, yakni Explain this. Di kotak teks inline chat Code Assist, ganti perintah yang sudah terisi dengan perintah berikut, lalu klik Send:

Anda adalah software engineer senior di tim Operasional di jaringan klinik hewan Pet Theory. Analisis skrip Node.js createTestData.js dan berikan penjelasan mendetail kepada anggota baru dalam tim. 1. Jelaskan tujuan keseluruhan skrip. 2. Jelaskan peran fungsi "createTestData", yang menjelaskan cara fungsi ini menggunakan library "faker" untuk menghasilkan data. 3. Jelaskan cara skrip menulis data ke file CSV. 4. Jelaskan tujuan integrasi Google Cloud Logging dan informasi apa saja yang dicatat. 5. Jelaskan penanganan argumen command line di akhir skrip. Untuk peningkatan yang disarankan, jangan update file ini.

Penjelasan untuk kode dalam skrip Node.js createTestData.js akan muncul di chat Gemini Code Assist.

  1. Jalankan perintah berikut di terminal Cloud Shell untuk membuat file customers_1000.csv, yang akan menampung 1.000 kumpulan data uji:
node createTestData 1000

Anda akan melihat output seperti ini:

Created file customers_1000.csv containing 1000 records.
  1. Buka file customers_1000.csv dan verifikasi bahwa data uji telah dibuat.

Menguji tugas yang sudah selesai

Klik Periksa progres saya untuk memverifikasi tugas yang telah dijalankan. Jika Anda telah berhasil membuat sampel data uji untuk Database Firestore, Anda akan melihat skor penilaian.

Membuat data uji untuk Database Firestore

Tugas 4. Mengimpor data pelanggan untuk pengujian

  1. Untuk menguji kapabilitas impor, gunakan skrip impor dan data uji yang telah dibuat sebelumnya:
node importTestData customers_1000.csv

Anda akan melihat output seperti ini:

Writing record 500 Writing record 1000 Wrote 1000 records
  1. Jika Anda menerima error seperti berikut:
Error: Cannot find module 'csv-parse'

Jalankan perintah berikut untuk menambahkan paket csv-parse ke lingkungan Anda:

npm install csv-parse
  1. Kemudian jalankan perintah tersebut kembali. Anda akan menerima output berikut.

Output:

Writing record 500 Writing record 1000 Wrote 1000 records

Dalam beberapa bagian sebelumnya, Anda telah melihat bagaimana Patrick dan Ruby berhasil membuat data uji dan skrip untuk mengimpor data ke dalam Firestore. Kini Patrick merasa lebih percaya diri untuk mengupload data pelanggan ke dalam database Firestore.

Menguji tugas yang sudah selesai

Klik Periksa progres saya untuk memverifikasi tugas yang telah dijalankan. Jika Anda telah berhasil mengimpor sampel data uji ke dalam Database Firestore, Anda akan melihat skor penilaian.

Mengimpor data uji ke dalam Database Firestore

Tugas 5. Memeriksa data di Firestore

Dengan sedikit bantuan Anda dan Ruby, Patrick kini telah berhasil memigrasikan data uji ke database Firestore. Buka Firestore dan lihat hasilnya.

  1. Kembalilah ke tab Konsol Cloud. Di Navigation menu (console_nav_small.png), klik View All Products, dan di bagian Databases, pilih Firestore, lalu klik database default. Setelah itu, klik ikon pensil. Ikon pensil

  2. Ketikkan /customers, lalu tekan Enter.

  3. Muat ulang tab browser Anda dan Anda akan melihat daftar pelanggan yang berhasil dimigrasi:

daftar pelanggan

Selamat!

Di sepanjang kursus lab ini, Anda telah menerima praktik interaktif dengan Firestore dan mempelajari cara menggunakan Smart Actions Gemini Code Assist secara langsung di IDE. Setelah membuat kumpulan data pelanggan untuk pengujian, Anda menjalankan skrip yang mengimpor data ke dalam Firestore. Kemudian, Anda belajar cara memanipulasi data di Firestore melalui Konsol Cloud.

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 27 Agustus 2025

Lab Terakhir Diuji pada 27 Agustus 2025

Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.