Mulai menggunakan edisi Cloud Firestore Enterprise dengan library klien server

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

  1. 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.

  2. Buka project Anda di Firebase console. Di panel kiri, luaskan Build, lalu pilih Firestore database.

  3. Klik Create database.

  4. Pilih Enterprise untuk mode database.

  5. Pilih Firestore in Native Mode untuk mode operasi, yang mendukung operasi Core dan Pipeline.

  6. Pilih lokasi untuk database Anda.

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

  8. 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
  1. Tambahkan Firebase Admin SDK ke aplikasi Anda:
    npm install firebase-admin --save
  2. Ikuti petunjuk di bawah ini untuk melakukan inisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Python
  1. Tambahkan Firebase Admin SDK ke aplikasi Python Anda:
    pip install --upgrade firebase-admin
  2. Ikuti petunjuk di bawah ini untuk melakukan inisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Java
  1. 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>
           
  2. 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.
  • Melakukan inisialisasi pada Google Cloud
    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()
  • Melakukan inisialisasi pada server Anda sendiri

    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.
  • Melakukan inisialisasi pada Google Cloud
    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();
  • Melakukan inisialisasi pada server Anda sendiri

    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
    const docRef = db.collection('users').doc('alovelace');
    
    await docRef.set({
      first: 'Ada',
      last: 'Lovelace',
      born: 1815
    });
    Java
    DocumentReference docRef = db.collection("users").document("alovelace");
    // Add document data  with id "alovelace" using a hashmap
    Map<String, Object> data = new HashMap<>();
    data.put("first", "Ada");
    data.put("last", "Lovelace");
    data.put("born", 1815);
    //asynchronously write data
    ApiFuture<WriteResult> result = docRef.set(data);
    // ...
    // result.get() blocks on response
    System.out.println("Update time : " + result.get().getUpdateTime());
    Python
    doc_ref = db.collection("users").document("alovelace")
    doc_ref.set({"first": "Ada", "last": "Lovelace", "born": 1815})

    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
    const snapshot = await db.collection('users').get();
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data());
    });
    Python
    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")
    Java
    // asynchronously retrieve all users
    ApiFuture<QuerySnapshot> query = db.collection("users").get();
    // ...
    // query.get() blocks on response
    QuerySnapshot querySnapshot = query.get();
    List<QueryDocumentSnapshot> documents = querySnapshot.getDocuments();
    for (QueryDocumentSnapshot document : documents) {
      System.out.println("User: " + document.getId());
      System.out.println("First: " + document.getString("first"));
      if (document.contains("middle")) {
        System.out.println("Middle: " + document.getString("middle"));
      }
      System.out.println("Last: " + document.getString("last"));
      System.out.println("Born: " + document.getLong("born"));
    }

    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: