Panduan mulai cepat ini menunjukkan cara menyiapkan Cloud Firestore, menambahkan data, lalu melihat data yang baru saja ditambahkan di Firebase console.
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 GCP yang ada.
Buka bagian Cloud Firestore di Firebase console. Anda akan diminta untuk memilih project Firebase yang ada. Ikuti alur kerja pembuatan database.
Pilih mode awal 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 terkunci
Menolak semua pembacaan dan penulisan dari klien seluler dan web. Server aplikasi terautentikasi (C#, Go, Java, Node.js, PHP, Python, atau Ruby) masih dapat mengakses database Anda.
Untuk memulai dengan library klien server C#, Go, Java, Node.js, PHP, Python, atau Ruby, pilih mode terkunci.
Kumpulan Aturan Keamanan Cloud Firestore awal Anda akan diterapkan ke database Cloud Firestore default. Jika Anda membuat beberapa database untuk project, Anda dapat men-deploy Aturan Keamanan Cloud Firestore untuk setiap database.
Pilih lokasi untuk database Anda.
Setelan lokasi ini adalah lokasi resource Google Cloud Platform (GCP) default project Anda. Perlu diperhatikan bahwa lokasi ini akan digunakan untuk layanan GCP di project Anda yang memerlukan setelan lokasi, khususnya, bucket Cloud Storage default dan aplikasi App Engine (yang diperlukan jika menggunakan Cloud Scheduler).
Jika lokasi tidak dapat dipilih, berarti project Anda sudah memiliki lokasi resource GCP default. Lokasi ditetapkan baik selama pembuatan project maupun saat penyiapan layanan lain yang memerlukan setelan lokasi.
Klik Done.
Saat Cloud Firestore diaktifkan, API di Pengelola Cloud API juga akan aktif.
Menyiapkan lingkungan pengembangan
Tambahkan dependensi dan library klien yang dibutuhkan ke aplikasi Anda.
Web
- Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Web Anda.
- Tambahkan library Firebase dan Cloud Firestore ke aplikasi Anda:
<script src="https://www.gstatic.com/firebasejs/10.12.4/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.12.4/firebase-firestore-compat.js"></script>
Cloud Firestore SDK juga tersedia sebagai paket npm.npm install firebase@10.12.4 --save
Anda harus mewajibkan Firebase dan Cloud Firestore secara manual.import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web
- Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Web Anda.
-
Cloud Firestore SDK tersedia sebagai paket npm.
npm install firebase@10.12.4 --save
Anda harus mengimpor Firebase dan Cloud Firestore.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Apple Anda.
Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.
- Di Xcode, dengan project aplikasi Anda dalam keadaan terbuka, buka File > Swift Packages > Add Package Dependency.
- Saat diminta, tambahkan repositori SDK platform Apple Firebase:
- Pilih library Firestore.
- Setelah selesai, Xcode akan otomatis mulai me-resolve dan mendownload dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk
Android
- Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Android Anda.
- Dengan menggunakan Firebase Android BoM, deklarasikan dependensi untuk library Cloud Firestore untuk Android di file Gradle modul (level aplikasi) (biasanya
app/build.gradle.kts
atauapp/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore") }
Dengan Firebase Android BoM, aplikasi Anda akan selalu menggunakan versi library Android Firebase yang kompatibel.
(Alternatif) Deklarasikan dependensi library Firebase tanpa menggunakan BoM
Jika memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi library Firebase di baris dependensinya.
Perhatikan bahwa jika Anda menggunakan beberapa library Firebase di aplikasi Anda, sebaiknya gunakan BoM untuk mengelola versi library yang memastikan bahwa semua versi kompatibel.
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore:25.0.0") }
Mencari modul library khusus Kotlin? Mulai rilis Oktober 2023, developer Kotlin dan Java dapat bergantung pada modul library utama (untuk mengetahui detailnya, lihat FAQ tentang inisiatif ini).
Dart
- Jika belum melakukannya, konfigurasikan dan inisialisasi Firebase di aplikasi Flutter Anda.
- Dari root project Flutter Anda, jalankan perintah berikut untuk
menginstal plugin:
flutter pub add cloud_firestore
- Setelah selesai, build ulang aplikasi Flutter Anda:
flutter run
- Opsional: Kurangi waktu build iOS & macOS dengan menyertakan
framework yang telah dikompilasi sebelumnya.
Saat ini, Firestore SDK untuk iOS bergantung pada kode yang memerlukan waktu lebih dari 5 menit untuk di-build di Xcode. Untuk mengurangi waktu build secara signifikan, Anda dapat menggunakan versi yang telah dikompilasi sebelumnya dengan menambahkan baris ini ke blok
target 'Runner' do
di Podfile Anda:target 'Runner' do use_frameworks! use_modular_headers! pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => 'IOS_SDK_VERSION' flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do inherit! :search_paths end end
Ganti IOS_SDK_VERSION dengan versi Firebase iOS SDK yang ditentukan dalam file
firebase_sdk_version.rb
firebase_core
. Jika Anda tidak menggunakanfirebase_core
versi terbaru, cari file ini dalam cache paket Pub lokal Anda (biasanya~/.pub-cache
).Selain itu, pastikan Anda telah mengupgrade CocoaPods ke versi 1.9.1 atau yang lebih tinggi:
gem install cocoapods
Untuk mengetahui informasi selengkapnya, lihat masalah di GitHub.
Java
- Tambahkan Firebase Admin SDK ke aplikasi Anda:
-
Menggunakan Gradle:
compile 'com.google.firebase:firebase-admin:1.32.0'
-
Menggunakan Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
-
Menggunakan Gradle:
- Ikuti petunjuk di bawah ini untuk menginisialisasi 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 menginisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
C++
- Ikuti petunjuk untuk menambahkan Firebase ke project C++ Anda.
- Antarmuka C++ untuk Android.
- Dependensi Gradle. Tambahkan kode berikut ke file
Gradle modul (level aplikasi) (biasanya
app/build.gradle
):android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- Dependensi biner. Demikian pula, cara yang direkomendasikan untuk mendapatkan
dependensi biner adalah dengan menambahkan kode berikut ke file
CMakeLists.txt
Anda:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- Untuk menyiapkan integrasi desktop, baca bagian Menambahkan Firebase ke project C++ Anda.
Unity
- Ikuti petunjuk untuk menambahkan Firebase ke project Unity Anda.
- Gunakan antarmuka Unity untuk mengonfigurasi project Anda guna meminifikasi build Android.
- Opsi ini dapat ditemukan di Setelan Pemain > Android > Memublikasikan Setelan > Meminifikasi.
- Opsinya mungkin lain pada versi Unity berbeda, jadi baca dokumentasi resmi Unity dan Panduan Debug Build Unity Firebase.
-
Jika, setelah mengaktifkan minifikasi, jumlah metode yang direferensikan masih
melebihi batas, opsi lainnya adalah mengaktifkan
multidex
di:-
mainTemplate.gradle
jika Template Gradle Khusus pada Setelan Pemain diaktifkan -
atau, file
build.gradle
level modul, jika Anda menggunakan Android Studio untuk mem-build project yang diekspor.
-
Anda harus meminifikasi build tersebut untuk menghindari pesan Error while merging dex archives
.
Node.js
-
Tambahkan Firebase Admin SDK ke aplikasi Anda:
npm install firebase-admin --save
- Ikuti petunjuk di bawah ini untuk menginisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Go
- Tambahkan Firebase Admin SDK ke aplikasi Go Anda:
go get firebase.google.com/go
- Ikuti petunjuk di bawah ini untuk menginisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
PHP
-
Library klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk melakukan autentikasi.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Credentials di API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Autentikasi tidak diperlukan jika aplikasi yang Anda jalankan pada App Engine atau Compute Engine di lingkungan produksi menggunakan project yang sama dengan yang digunakan untuk Cloud Firestore. Jika Anda menggunakan project berbeda, siapkan akun layanan.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
- Instal dan aktifkan ekstensi gRPC untuk PHP, yang akan Anda perlukan untuk menggunakan library klien.
-
Tambahkan library PHP Cloud Firestore ke aplikasi Anda:
composer require google/cloud-firestore
C#
-
Library klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk melakukan autentikasi.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Credentials di API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Autentikasi tidak diperlukan jika aplikasi yang Anda jalankan pada App Engine atau Compute Engine di lingkungan produksi menggunakan project yang sama dengan yang digunakan untuk Cloud Firestore. Jika Anda menggunakan project berbeda, siapkan akun layanan.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
-
Tambahkan library C# Cloud Firestore ke aplikasi Anda di
.csproj
file:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
-
Tambahkan kode berikut ke file
Program.cs
Anda:using Google.Cloud.Firestore;
Ruby
-
Library klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk melakukan autentikasi.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Credentials di API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Autentikasi tidak diperlukan jika aplikasi yang Anda jalankan pada App Engine atau Compute Engine di lingkungan produksi menggunakan project yang sama dengan yang digunakan untuk Cloud Firestore. Jika Anda menggunakan project berbeda, siapkan akun layanan.
-
Untuk mengautentikasi dari lingkungan pengembangan, atur agar variabel lingkungan
-
Tambahkan library Ruby Cloud Firestore ke aplikasi Anda di
Gemfile
:gem "google-cloud-firestore"
-
Instal dependensi dari
Gemfile
menggunakan:bundle install
(Opsional) Membuat prototipe dan melakukan pengujian dengan Firebase Local Emulator Suite
Bagi developer seluler, sebelum membahas cara aplikasi Anda menulis ke dan membaca dari Cloud Firestore, kenali Firebase Local Emulator Suite yang merupakan sekumpulan alat yang dapat Anda gunakan untuk membuat prototipe dan menguji fungsionalitas Cloud Firestore. Jika Anda sedang mencoba berbagai model data, mengoptimalkan aturan keamanan, atau berupaya menemukan cara yang paling hemat biaya untuk berinteraksi dengan backend, akan sangat bermanfaat jika Anda dapat bekerja secara lokal tanpa men-deploy layanan langsung.
Emulator Cloud Firestore adalah bagian dari Local Emulator Suite yang memungkinkan aplikasi berinteraksi dengan konfigurasi dan konten database teremulasi, serta secara opsional dengan resource project teremulasi (fungsi, database lain, dan aturan keamanan).
Penggunaan emulator Cloud Firestore hanya memerlukan beberapa langkah:
- Menambahkan satu baris kode ke konfigurasi pengujian aplikasi untuk terhubung ke emulator.
- Menjalankan
firebase emulators:start
dari root direktori project lokal Anda. - Membuat panggilan dari kode prototipe aplikasi Anda menggunakan SDK platform Cloud Firestore seperti biasa.
Panduan mendetail yang mencakup Cloud Firestore dan Cloud Functions telah tersedia. Sebaiknya baca juga Pengantar Local Emulator Suite.
Menginisialisasi Cloud Firestore
Lakukan inisialisasi pada instance Cloud Firestore:
Web
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = getFirestore(app);
Ganti FIREBASE_CONFIGURATION dengan firebaseConfig
aplikasi web Anda.
Untuk mempertahankan data saat perangkat kehilangan koneksi, lihat dokumentasi Mengaktifkan Data Offline.
Web
import firebase from "firebase/app"; import "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = firebase.firestore();
Ganti FIREBASE_CONFIGURATION dengan firebaseConfig
aplikasi web Anda.
Untuk mempertahankan data saat perangkat kehilangan koneksi, lihat dokumentasi Mengaktifkan Data Offline.
Swift
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Objective-C
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
Kotlin+KTX
// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
Java
// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();
Dart
db = FirebaseFirestore.instance;
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();
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 menginisialisasi 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()
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_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
Kredensial default aplikasi yang sudah ada juga dapat digunakan untuk menginisialisasi SDK tersebut.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.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_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
C++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
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();
Go
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 ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
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 ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Firestore, lihat Library Klien Cloud Firestore.
Unity
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Firestore, lihat Library Klien Cloud Firestore.
Ruby
Menambahkan data
Cloud Firestore menyimpan data dalam Documents yang disimpan di Collections. Cloud Firestore membuat koleksi dan dokumen secara implisit saat pertama kali data ditambahkan ke dokumen. Anda tidak perlu secara eksplisit membuat koleksi atau dokumen.
Buat koleksi baru dan dokumen menggunakan kode contoh berikut.
Web
import { collection, addDoc } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Ada", last: "Lovelace", born: 1815 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a new document with a generated ID do { let ref = try await db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Ada", "last": "Lovelace", "born": 1815 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Firestore, lihat Library Klien Cloud Firestore.
Unity
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
C#
Ruby
Sekarang tambahkan dokumen lain ke koleksi users
. Perhatikan bahwa dokumen ini berisi key-value pair (nama tengah) yang tidak muncul di dokumen pertama. Dokumen dalam koleksi dapat berisi kumpulan informasi yang berbeda.
Web
// Add a second document with a generated ID. import { addDoc, collection } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a second document with a generated ID. do { let ref = try await db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Firestore, lihat Library Klien Cloud Firestore.
Unity
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
C#
Ruby
Membaca data
Gunakan penampil data di Firebase console untuk dengan cepat memverifikasi bahwa Anda telah menambahkan data ke Cloud Firestore.
Anda juga dapat menggunakan metode "get" untuk mengambil seluruh koleksi.
Web
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Swift
do { let snapshot = try await db.collection("users").getDocuments() for document in snapshot.documents { print("\(document.documentID) => \(document.data())") } } catch { print("Error getting documents: \(error)") }
Objective-C
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
Kotlin+KTX
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
Java
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
Dart
await db.collection("users").get().then((event) { for (var doc in event.docs) { print("${doc.id} => ${doc.data()}"); } });
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
C++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << std::endl; } } else { std::cout << "Error getting documents: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Untuk mengetahui informasi lebih lanjut tentang cara menginstal dan membuat klien Cloud Firestore, lihat Library Klien Cloud Firestore.
Unity
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
C#
Ruby
Melindungi data
Jika Anda menggunakan SDK platform Web, Android, atau Apple, gunakan Firebase Authentication dan Aturan Keamanan Cloud Firestore untuk melindungi data Anda di Cloud Firestore.
Berikut adalah beberapa kumpulan aturan dasar yang dapat Anda gunakan untuk memulai. Anda dapat mengubah aturan keamanan di tab Aturan di konsol.
Auth diperlukan
// Allow read/write access to a document keyed by the user's UID
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
}
}
Mode terkunci
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Sebelum men-deploy aplikasi Web, Android, atau iOS ke produksi, lakukan juga langkah-langkah untuk memastikan bahwa hanya klien aplikasi yang dapat mengakses data Cloud Firestore Anda. Lihat dokumentasi App Check.
Jika Anda menggunakan salah satu SDK server, gunakan Identity and Access Management (IAM) untuk melindungi data di Cloud Firestore.
Menonton video tutorial
Untuk mendapatkan panduan terperinci tentang cara mulai menggunakan library klien seluler Cloud Firestore, silakan tonton salah satu video tutorial berikut:
Web
iOS+
Android
Anda dapat menemukan video lainnya di channel YouTube Firebase.
Langkah berikutnya
Perdalam pengetahuan Anda tentang topik berikut:
- Codelabs — Pelajari cara menggunakan Cloud Firestore dalam aplikasi sungguhan dengan mengikuti codelab untuk Android, iOS, atau Web.
- Model data — Pelajari lebih lanjut pembuatan struktur data di Cloud Firestore, termasuk data hierarkis dan subkoleksi.
- Menambahkan data — Pelajari lebih lanjut cara membuat dan memperbarui data di Cloud Firestore.
- Mendapatkan data — Pelajari cara mengambil data lebih lanjut.
- Menjalankan kueri sederhana dan gabungan — Pelajari cara menjalankan kueri sederhana dan gabungan.
- Mengurutkan dan membatasi kueri Pelajari cara mengurutkan dan membatasi data yang dihasilkan oleh kueri.