Panduan memulai ini menunjukkan cara menyiapkan Cloud Firestore, menambahkan data, lalu menggunakan operasi Core atau operasi Pipeline untuk mengkueri data yang baru saja ditambahkan di Firebase console menggunakan library klien server untuk Java, Node.js, dan Python.
Gunakan library klien ini untuk menyiapkan lingkungan server dengan hak istimewa yang memiliki akses penuh ke database Anda.
Membuat database Cloud Firestore
Jika belum melakukannya, buat project Firebase: Di Firebase console, klik Add project, lalu ikuti petunjuk di layar untuk membuat project Firebase atau untuk menambahkan layanan Firebase ke project Google Cloud yang ada.
Buka project Anda di Firebase console. Di panel kiri, luaskan Build, lalu pilih Firestore database.
Klik Create database.
Pilih Enterprise untuk mode database.
Pilih Firestore in Native Mode untuk mode operasi, yang mendukung operasi Core dan Pipeline.
Pilih lokasi untuk database Anda.
Pilih mode awal untuk Cloud Firestore Security Rules Anda:
- Mode pengujian
Cocok untuk memulai dengan library klien seluler dan web, tetapi memungkinkan siapa pun untuk membaca dan menimpa data Anda. Setelah melakukan pengujian, pastikan untuk membaca bagian Melindungi data.
Untuk memulai dengan web, platform Apple, atau Android SDK, pilih mode pengujian.
- Mode produksi
Menolak semua pembacaan dan penulisan dari klien seluler dan web. Server aplikasi terautentikasi (Node.js, Python, Java) masih dapat mengakses database Anda.
Kumpulan Cloud Firestore Security Rules awal Anda akan diterapkan ke database Cloud Firestore default. Jika Anda membuat beberapa database untuk project, Anda dapat men-deploy Cloud Firestore Security Rules untuk setiap database.
Klik Create.
Saat Anda mengaktifkan Cloud Firestore, API di Pengelola Cloud API juga akan aktif.
Menyiapkan lingkungan pengembangan
Tambahkan dependensi dan library klien yang dibutuhkan ke aplikasi Anda.
Node.js
-
Tambahkan Firebase Admin SDK ke aplikasi Anda:
npm install firebase-admin --save
- Ikuti petunjuk di bawah ini untuk melakukan inisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Python
- Tambahkan Firebase Admin SDK ke aplikasi Python Anda:
pip install --upgrade firebase-admin
- Ikuti petunjuk di bawah ini untuk melakukan inisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Java
- Tambahkan Firebase Admin SDK ke aplikasi Anda:
-
Menggunakan Gradle:
implementation 'com.google.firebase:firebase-admin:9.7.0'
-
Menggunakan Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.0</version> </dependency>
-
Menggunakan Gradle:
- Ikuti petunjuk di bawah ini untuk melakukan inisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Lakukan inisialisasi Cloud Firestore
Lakukan inisialisasi instance Cloud Firestore:
Node.js
Inisialisasi Cloud Firestore SDK dilakukan dengan berbagai cara, tergantung pada lingkungan Anda. Berikut adalah metode yang paling umum. Untuk referensi yang lebih lengkap, baca bagian Melakukan Inisialisasi Admin SDK.-
Melakukan inisialisasi pada Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Melakukan inisialisasi pada Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Melakukan inisialisasi pada server Anda sendiri
Untuk menggunakan Firebase Admin SDK pada server Anda sendiri (atau lingkungan Node.js lainnya), gunakan akun layanan. Buka IAM & admin > Service accounts di Konsol Google Cloud. Buat kunci pribadi baru dan simpan file JSON-nya. Lalu gunakan file tersebut untuk melakukan inisialisasi SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Python
Inisialisasi Cloud Firestore SDK dilakukan dengan berbagai cara, tergantung pada lingkungan Anda. Berikut adalah metode yang paling umum. Untuk referensi yang lebih lengkap, baca bagian Melakukan Inisialisasi Admin SDK.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Kredensial default aplikasi yang sudah ada juga dapat digunakan untuk melakukan inisialisasi SDK tersebut.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
Untuk menggunakan Firebase Admin SDK pada server Anda sendiri, gunakan akun layanan.
Buka IAM & admin > Service accounts di Konsol Google Cloud. Buat kunci pribadi baru dan simpan file JSON-nya. Lalu gunakan file tersebut untuk melakukan inisialisasi SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Java
Inisialisasi Cloud Firestore SDK dilakukan dengan berbagai cara, tergantung pada lingkungan Anda. Berikut adalah metode yang paling umum. Untuk referensi yang lebih lengkap, baca bagian Melakukan Inisialisasi Admin SDK.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Untuk menggunakan Firebase Admin SDK pada server Anda sendiri, gunakan akun layanan.
Buka IAM & admin > Service accounts di Konsol Google Cloud. Buat kunci pribadi baru dan simpan file JSON-nya. Lalu gunakan file tersebut untuk melakukan inisialisasi SDK:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Menambahkan data menggunakan operasi Core
Guna mempelajari operasi Core dan operasi Pipeline untuk mengkueri data, tambahkan data ke database Anda menggunakan operasi Core.
Cloud Firestore menyimpan data dalam Documents yang disimpan di Collections. Cloud Firestore membuat koleksi dan dokumen secara implisit saat pertama kali Anda menambahkan data ke dokumen. Anda tidak perlu membuat koleksi atau dokumen secara eksplisit.
Buat koleksi baru dan dokumen menggunakan kode contoh berikut.
Node.js
Java
Python
Membaca data menggunakan operasi Core
Gunakan penampil data di Firebase console untuk memverifikasi dengan cepat bahwa Anda telah menambahkan data ke Cloud Firestore.
Anda juga dapat menggunakan metode "get" untuk mengambil seluruh koleksi.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Membaca data menggunakan operasi Pipeline
Sekarang Anda dapat membandingkan pengalaman kueri Pipeline dengan pengalaman kueri Core.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
Langkah berikutnya
Perdalam pengetahuan Anda tentang operasi Core dan Pipeline dengan topik berikut:
- Pastikan Anda memahami perbedaan antara operasi Core dan Pipeline
- Pelajari lebih lanjut cara membuat kueri dengan operasi Core
- Pelajari lebih lanjut cara membuat kueri dengan operasi Pipeline.