Ada beberapa cara untuk menulis data ke Cloud Firestore:
- Tetapkan data dokumen dalam koleksi, secara eksplisit menentukan pengidentifikasi dokumen.
- Tambahkan dokumen baru ke koleksi. Dalam hal ini, Cloud Firestore secara otomatis menghasilkan pengidentifikasi dokumen.
- Buat dokumen kosong dengan pengidentifikasi yang dibuat secara otomatis, dan tetapkan data untuk itu nanti.
Panduan ini menjelaskan cara menggunakan set, tambah, atau perbarui setiap dokumen di Cloud Firestore. Jika Anda ingin menulis data secara massal, lihat Transaksi dan Batched Writes .
Sebelum kamu memulai
Lihat Memulai Cloud Firestore untuk membuat database Cloud Firestore.Inisialisasi Cloud Firestore
Menginisialisasi instance Cloud Firestore:
Web version 9
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 koneksinya, lihat dokumentasi Aktifkan Data Offline .
Web version 8
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 koneksinya, lihat dokumentasi Aktifkan Data Offline .
Cepat
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;
Jawa
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi 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 di server Anda sendiri, gunakan akun layanan .
Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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();
Piton
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi 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 ada juga dapat digunakan untuk menginisialisasi SDK.
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 di server Anda sendiri, gunakan akun layanan .
Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi 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 ada juga dapat digunakan untuk menginisialisasi SDK.
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 di server Anda sendiri, gunakan akun layanan .
Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .- Inisialisasi pada Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
- Inisialisasi di Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
- Inisialisasi di server Anda sendiri
Untuk menggunakan Firebase Admin SDK di server Anda sendiri (atau lingkungan Node.js lainnya), gunakan akun layanan . Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Pergi
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi 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 di server Anda sendiri, gunakan akun layanan .
Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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 selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Rubi
Tetapkan dokumen
Untuk membuat atau menimpa satu dokumen, gunakan metode set()
khusus bahasa berikut:
Web version 9
Gunakan metode setDoc()
:
import { doc, setDoc } from "firebase/firestore"; // Add a new document in collection "cities" await setDoc(doc(db, "cities", "LA"), { name: "Los Angeles", state: "CA", country: "USA" });
Web version 8
Gunakan metode set()
:
// Add a new document in collection "cities" db.collection("cities").doc("LA").set({ name: "Los Angeles", state: "CA", country: "USA" }) .then(() => { console.log("Document successfully written!"); }) .catch((error) => { console.error("Error writing document: ", error); });
Cepat
Gunakan metode setData()
:
// Add a new document in collection "cities" db.collection("cities").document("LA").setData([ "name": "Los Angeles", "state": "CA", "country": "USA" ]) { err in if let err = err { print("Error writing document: \(err)") } else { print("Document successfully written!") } }
Objective-C
Gunakan metode setData:
::
// Add a new document in collection "cities" [[[self.db collectionWithPath:@"cities"] documentWithPath:@"LA"] setData:@{ @"name": @"Los Angeles", @"state": @"CA", @"country": @"USA" } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error writing document: %@", error); } else { NSLog(@"Document successfully written!"); } }];
Kotlin+KTX
Gunakan metode set()
:
val city = hashMapOf( "name" to "Los Angeles", "state" to "CA", "country" to "USA" ) db.collection("cities").document("LA") .set(city) .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully written!") } .addOnFailureListener { e -> Log.w(TAG, "Error writing document", e) }
Java
Gunakan metode set()
:
Map<String, Object> city = new HashMap<>(); city.put("name", "Los Angeles"); city.put("state", "CA"); city.put("country", "USA"); db.collection("cities").document("LA") .set(city) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "DocumentSnapshot successfully written!"); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error writing document", e); } });
Dart
Gunakan metode set()
:
final city = <String, String>{ "name": "Los Angeles", "state": "CA", "country": "USA" }; db .collection("cities") .doc("LA") .set(city) .onError((e, _) => print("Error writing document: $e"));
Jawa
Gunakan metode set()
:
Piton
Gunakan metode set()
:
Python
Gunakan metode set()
:
C++
Gunakan metode Set()
:
// Add a new document in collection 'cities' db->Collection("cities") .Document("LA") .Set({{"name", FieldValue::String("Los Angeles")}, {"state", FieldValue::String("CA")}, {"country", FieldValue::String("USA")}}) .OnCompletion([](const Future<void>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot successfully written!" << std::endl; } else { std::cout << "Error writing document: " << future.error_message() << std::endl; } });
Node.js
Gunakan metode set()
:
Pergi
Gunakan metode Set()
:
PHP
Gunakan metode set()
:
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
Gunakan metode SetAsync()
:
DocumentReference docRef = db.Collection("cities").Document("LA"); Dictionary<string, object> city = new Dictionary<string, object> { { "Name", "Los Angeles" }, { "State", "CA" }, { "Country", "USA" } }; docRef.SetAsync(city).ContinueWithOnMainThread(task => { Debug.Log("Added data to the LA document in the cities collection."); });
C#
Gunakan metode SetAsync()
:
Rubi
Gunakan metode set()
:
Jika dokumen tidak ada, itu akan dibuat. Jika dokumen memang ada, isinya akan ditimpa dengan data yang baru diberikan, kecuali jika Anda menentukan bahwa data tersebut harus digabungkan ke dalam dokumen yang sudah ada, sebagai berikut:
Web version 9
import { doc, setDoc } from "firebase/firestore"; const cityRef = doc(db, 'cities', 'BJ'); setDoc(cityRef, { capital: true }, { merge: true });
Web version 8
var cityRef = db.collection('cities').doc('BJ'); var setWithMerge = cityRef.set({ capital: true }, { merge: true });
Cepat
// Update one field, creating the document if it does not exist. db.collection("cities").document("BJ").setData([ "capital": true ], merge: true)
Objective-C
// Write to the document reference, merging data with existing // if the document already exists [[[self.db collectionWithPath:@"cities"] documentWithPath:@"BJ"] setData:@{ @"capital": @YES } merge:YES completion:^(NSError * _Nullable error) { // ... }];
Kotlin+KTX
// Update one field, creating the document if it does not already exist. val data = hashMapOf("capital" to true) db.collection("cities").document("BJ") .set(data, SetOptions.merge())
Java
// Update one field, creating the document if it does not already exist. Map<String, Object> data = new HashMap<>(); data.put("capital", true); db.collection("cities").document("BJ") .set(data, SetOptions.merge());
Dart
// Update one field, creating the document if it does not already exist. final data = {"capital": true}; db.collection("cities").doc("BJ").set(data, SetOptions(merge: true));
Jawa
Piton
Python
C++
db->Collection("cities").Document("BJ").Set( {{"capital", FieldValue::Boolean(true)}}, SetOptions::Merge());
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
DocumentReference docRef = db.Collection("cities").Document("LA"); Dictionary<string, object> update = new Dictionary<string, object> { { "capital", false } }; docRef.SetAsync(update, SetOptions.MergeAll);
C#
Rubi
Jika Anda tidak yakin apakah dokumen itu ada, berikan opsi untuk menggabungkan data baru dengan dokumen yang ada untuk menghindari penimpaan seluruh dokumen. Untuk dokumen yang berisi peta, perhatikan bahwa menentukan kumpulan dengan bidang yang berisi peta kosong akan menimpa bidang peta dokumen target.
Tipe data
Cloud Firestore memungkinkan Anda menulis berbagai jenis data di dalam dokumen, termasuk string, boolean, angka, tanggal, null, serta array dan objek bertingkat. Cloud Firestore selalu menyimpan angka sebagai ganda, apa pun jenis angka yang Anda gunakan dalam kode.
Web version 9
import { doc, setDoc, Timestamp } from "firebase/firestore"; const docData = { stringExample: "Hello world!", booleanExample: true, numberExample: 3.14159265, dateExample: Timestamp.fromDate(new Date("December 10, 1815")), arrayExample: [5, true, "hello"], nullExample: null, objectExample: { a: 5, b: { nested: "foo" } } }; await setDoc(doc(db, "data", "one"), docData);
Web version 8
var docData = { stringExample: "Hello world!", booleanExample: true, numberExample: 3.14159265, dateExample: firebase.firestore.Timestamp.fromDate(new Date("December 10, 1815")), arrayExample: [5, true, "hello"], nullExample: null, objectExample: { a: 5, b: { nested: "foo" } } }; db.collection("data").doc("one").set(docData).then(() => { console.log("Document successfully written!"); });
Cepat
let docData: [String: Any] = [ "stringExample": "Hello world!", "booleanExample": true, "numberExample": 3.14159265, "dateExample": Timestamp(date: Date()), "arrayExample": [5, true, "hello"], "nullExample": NSNull(), "objectExample": [ "a": 5, "b": [ "nested": "foo" ] ] ] db.collection("data").document("one").setData(docData) { err in if let err = err { print("Error writing document: \(err)") } else { print("Document successfully written!") } }
Objective-C
NSDictionary *docData = @{ @"stringExample": @"Hello world!", @"booleanExample": @YES, @"numberExample": @3.14, @"dateExample": [FIRTimestamp timestampWithDate:[NSDate date]], @"arrayExample": @[@5, @YES, @"hello"], @"nullExample": [NSNull null], @"objectExample": @{ @"a": @5, @"b": @{ @"nested": @"foo" } } }; [[[self.db collectionWithPath:@"data"] documentWithPath:@"one"] setData:docData completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error writing document: %@", error); } else { NSLog(@"Document successfully written!"); } }];
Kotlin+KTX
val docData = hashMapOf( "stringExample" to "Hello world!", "booleanExample" to true, "numberExample" to 3.14159265, "dateExample" to Timestamp(Date()), "listExample" to arrayListOf(1, 2, 3), "nullExample" to null ) val nestedData = hashMapOf( "a" to 5, "b" to true ) docData["objectExample"] = nestedData db.collection("data").document("one") .set(docData) .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully written!") } .addOnFailureListener { e -> Log.w(TAG, "Error writing document", e) }
Java
Map<String, Object> docData = new HashMap<>(); docData.put("stringExample", "Hello world!"); docData.put("booleanExample", true); docData.put("numberExample", 3.14159265); docData.put("dateExample", new Timestamp(new Date())); docData.put("listExample", Arrays.asList(1, 2, 3)); docData.put("nullExample", null); Map<String, Object> nestedData = new HashMap<>(); nestedData.put("a", 5); nestedData.put("b", true); docData.put("objectExample", nestedData); db.collection("data").document("one") .set(docData) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "DocumentSnapshot successfully written!"); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error writing document", e); } });
Dart
final docData = { "stringExample": "Hello world!", "booleanExample": true, "numberExample": 3.14159265, "dateExample": Timestamp.now(), "listExample": [1, 2, 3], "nullExample": null }; final nestedData = { "a": 5, "b": true, }; docData["objectExample"] = nestedData; db .collection("data") .doc("one") .set(docData) .onError((e, _) => print("Error writing document: $e"));
Jawa
Piton
Python
C++
MapFieldValue doc_data{ {"stringExample", FieldValue::String("Hello world!")}, {"booleanExample", FieldValue::Boolean(true)}, {"numberExample", FieldValue::Double(3.14159265)}, {"dateExample", FieldValue::Timestamp(Timestamp::Now())}, {"arrayExample", FieldValue::Array({FieldValue::Integer(1), FieldValue::Integer(2), FieldValue::Integer(3)})}, {"nullExample", FieldValue::Null()}, {"objectExample", FieldValue::Map( {{"a", FieldValue::Integer(5)}, {"b", FieldValue::Map( {{"nested", FieldValue::String("foo")}})}})}, }; db->Collection("data").Document("one").Set(doc_data).OnCompletion( [](const Future<void>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot successfully written!" << std::endl; } else { std::cout << "Error writing document: " << future.error_message() << std::endl; } });
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
DocumentReference docRef = db.Collection("data").Document("one"); Dictionary<string, object> docData = new Dictionary<string, object> { { "stringExample", "Hello World" }, { "booleanExample", false }, { "numberExample", 3.14159265 }, { "nullExample", null }, { "arrayExample", new List<object>() { 5, true, "Hello" } }, { "objectExample", new Dictionary<string, object> { { "a", 5 }, { "b", true }, } }, }; docRef.SetAsync(docData);
C#
Rubi
Objek khusus
Menggunakan objek Map
atau Dictionary
untuk merepresentasikan dokumen Anda seringkali tidak nyaman, sehingga Cloud Firestore mendukung penulisan dokumen dengan kelas kustom. Cloud Firestore mengonversi objek menjadi tipe data yang didukung.
Menggunakan kelas khusus, Anda dapat menulis ulang contoh awal seperti yang ditunjukkan:
Web version 9
class City { constructor (name, state, country ) { this.name = name; this.state = state; this.country = country; } toString() { return this.name + ', ' + this.state + ', ' + this.country; } } // Firestore data converter const cityConverter = { toFirestore: (city) => { return { name: city.name, state: city.state, country: city.country }; }, fromFirestore: (snapshot, options) => { const data = snapshot.data(options); return new City(data.name, data.state, data.country); } };
Web version 8
class City { constructor (name, state, country ) { this.name = name; this.state = state; this.country = country; } toString() { return this.name + ', ' + this.state + ', ' + this.country; } } // Firestore data converter var cityConverter = { toFirestore: function(city) { return { name: city.name, state: city.state, country: city.country }; }, fromFirestore: function(snapshot, options){ const data = snapshot.data(options); return new City(data.name, data.state, data.country); } };
Cepat
public struct City: Codable { let name: String let state: String? let country: String? let isCapital: Bool? let population: Int64? enum CodingKeys: String, CodingKey { case name case state case country case isCapital = "capital" case population } }
Objective-C
// This isn't supported in Objective-C.
Kotlin+KTX
data class City( val name: String? = null, val state: String? = null, val country: String? = null, @field:JvmField // use this annotation if your Boolean field is prefixed with 'is' val isCapital: Boolean? = null, val population: Long? = null, val regions: List<String>? = null )
Java
Setiap kelas khusus harus memiliki konstruktor publik yang tidak memerlukan argumen. Selain itu, kelas harus menyertakan pengambil publik untuk setiap properti.
public class City { private String name; private String state; private String country; private boolean capital; private long population; private List<String> regions; public City() {} public City(String name, String state, String country, boolean capital, long population, List<String> regions) { // ... } public String getName() { return name; } public String getState() { return state; } public String getCountry() { return country; } public boolean isCapital() { return capital; } public long getPopulation() { return population; } public List<String> getRegions() { return regions; } }
Dart
class City { final String? name; final String? state; final String? country; final bool? capital; final int? population; final List<String>? regions; City({ this.name, this.state, this.country, this.capital, this.population, this.regions, }); factory City.fromFirestore( DocumentSnapshot<Map<String, dynamic>> snapshot, SnapshotOptions? options, ) { final data = snapshot.data(); return City( name: data?['name'], state: data?['state'], country: data?['country'], capital: data?['capital'], population: data?['population'], regions: data?['regions'] is Iterable ? List.from(data?['regions']) : null, ); } Map<String, dynamic> toFirestore() { return { if (name != null) "name": name, if (state != null) "state": state, if (country != null) "country": country, if (capital != null) "capital": capital, if (population != null) "population": population, if (regions != null) "regions": regions, }; } }
Jawa
Piton
Python
C++
// This is not yet supported.
Node.js
// Node.js uses JavaScript objects
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
[FirestoreData] public class City { [FirestoreProperty] public string Name { get; set; } [FirestoreProperty] public string State { get; set; } [FirestoreProperty] public string Country { get; set; } [FirestoreProperty] public bool Capital { get; set; } [FirestoreProperty] public long Population { get; set; } }
C#
Rubi
// This isn't supported in Ruby
Web version 9
import { doc, setDoc } from "firebase/firestore"; // Set with cityConverter const ref = doc(db, "cities", "LA").withConverter(cityConverter); await setDoc(ref, new City("Los Angeles", "CA", "USA"));
Web version 8
// Set with cityConverter db.collection("cities").doc("LA") .withConverter(cityConverter) .set(new City("Los Angeles", "CA", "USA"));
Cepat
let city = City(name: "Los Angeles", state: "CA", country: "USA", isCapital: false, population: 5000000) do { try db.collection("cities").document("LA").setData(from: city) } catch let error { print("Error writing city to Firestore: \(error)") }
Objective-C
// This isn't supported in Objective-C.
Kotlin+KTX
val city = City("Los Angeles", "CA", "USA", false, 5000000L, listOf("west_coast", "socal")) db.collection("cities").document("LA").set(city)
Java
City city = new City("Los Angeles", "CA", "USA", false, 5000000L, Arrays.asList("west_coast", "sorcal")); db.collection("cities").document("LA").set(city);
Dart
final city = City( name: "Los Angeles", state: "CA", country: "USA", capital: false, population: 5000000, regions: ["west_coast", "socal"], ); final docRef = db .collection("cities") .withConverter( fromFirestore: City.fromFirestore, toFirestore: (City city, options) => city.toFirestore(), ) .doc("LA"); await docRef.set(city);
Jawa
Piton
Python
C++
// This is not yet supported.
Node.js
// Node.js uses JavaScript objects
Pergi
PHP
// This isn't supported in PHP.
Persatuan
DocumentReference docRef = db.Collection("cities").Document("LA"); City city = new City { Name = "Los Angeles", State = "CA", Country = "USA", Capital = false, Population = 3900000L }; docRef.SetAsync(city);
C#
Rubi
// This isn't supported in Ruby.
Tambahkan dokumen
Saat Anda menggunakan set()
untuk membuat dokumen, Anda harus menentukan ID untuk membuat dokumen. Sebagai contoh:
Web version 9
import { doc, setDoc } from "firebase/firestore"; await setDoc(doc(db, "cities", "new-city-id"), data);
Web version 8
db.collection("cities").doc("new-city-id").set(data);
Cepat
db.collection("cities").document("new-city-id").setData(data)
Objective-C
[[[self.db collectionWithPath:@"cities"] documentWithPath:@"new-city-id"] setData:data];
Kotlin+KTX
db.collection("cities").document("new-city-id").set(data)
Java
db.collection("cities").document("new-city-id").set(data);
Dart
db.collection("cities").doc("new-city-id").set({"name": "Chicago"});
Jawa
Piton
Python
C++
db->Collection("cities").Document("SF").Set({/*some data*/});
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
db.Collection("cities").Document("new-city-id").SetAsync(city);
C#
Rubi
Namun terkadang tidak ada ID yang berarti untuk dokumen tersebut, dan lebih mudah membiarkan Cloud Firestore membuatkan ID secara otomatis untuk Anda. Anda dapat melakukannya dengan memanggil metode add()
khusus bahasa berikut:
Web version 9
Gunakan metode addDoc()
:
import { collection, addDoc } from "firebase/firestore"; // Add a new document with a generated id. const docRef = await addDoc(collection(db, "cities"), { name: "Tokyo", country: "Japan" }); console.log("Document written with ID: ", docRef.id);
Web version 8
Gunakan metode add()
:
// Add a new document with a generated id. db.collection("cities").add({ name: "Tokyo", country: "Japan" }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Cepat
Gunakan metode addDocument()
:
// Add a new document with a generated id. var ref: DocumentReference? = nil ref = db.collection("cities").addDocument(data: [ "name": "Tokyo", "country": "Japan" ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
Objective-C
Gunakan metode addDocumentWithData:
::
// Add a new document with a generated id. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"cities"] addDocumentWithData:@{ @"name": @"Tokyo", @"country": @"Japan" } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
Gunakan metode add()
:
// Add a new document with a generated id. val data = hashMapOf( "name" to "Tokyo", "country" to "Japan" ) db.collection("cities") .add(data) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot written with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
Gunakan metode add()
:
// Add a new document with a generated id. Map<String, Object> data = new HashMap<>(); data.put("name", "Tokyo"); data.put("country", "Japan"); db.collection("cities") .add(data) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot written with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
Gunakan metode add()
:
// Add a new document with a generated id. final data = {"name": "Tokyo", "country": "Japan"}; db.collection("cities").add(data).then((documentSnapshot) => print("Added Data with ID: ${documentSnapshot.id}"));
Jawa
Gunakan metode add()
:
Piton
Gunakan metode add()
:
Python
Gunakan metode add()
:
C++
Gunakan metode Add()
:
db->Collection("cities").Add({/*some data*/});
Node.js
Gunakan metode add()
:
Pergi
Gunakan metode Add()
:
PHP
Gunakan metode add()
:
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
Gunakan metode AddAsync()
:
Dictionary<string, object> city = new Dictionary<string, object> { { "Name", "Tokyo" }, { "Country", "Japan" } }; db.Collection("cities").AddAsync(city).ContinueWithOnMainThread(task => { DocumentReference addedDocRef = task.Result; Debug.Log(String.Format("Added document with ID: {0}.", addedDocRef.Id)); });
C#
Gunakan metode AddAsync()
:
Rubi
Gunakan metode add()
:
Dalam beberapa kasus, akan berguna untuk membuat referensi dokumen dengan ID yang dibuat secara otomatis, kemudian gunakan referensi tersebut nanti. Untuk kasus penggunaan ini, Anda dapat memanggil doc()
:
Web version 9
import { collection, doc, setDoc } from "firebase/firestore"; // Add a new document with a generated id const newCityRef = doc(collection(db, "cities")); // later... await setDoc(newCityRef, data);
Web version 8
// Add a new document with a generated id. var newCityRef = db.collection("cities").doc(); // later... newCityRef.set(data);
Cepat
let newCityRef = db.collection("cities").document() // later... newCityRef.setData([ // ... ])
Objective-C
FIRDocumentReference *newCityRef = [[self.db collectionWithPath:@"cities"] documentWithAutoID]; // later... [newCityRef setData:@{ /* ... */ }];
Kotlin+KTX
val data = HashMap<String, Any>() val newCityRef = db.collection("cities").document() // Later... newCityRef.set(data)
Java
Map<String, Object> data = new HashMap<>(); DocumentReference newCityRef = db.collection("cities").document(); // Later... newCityRef.set(data);
Dart
// Add a new document with a generated id. final data = <String, dynamic>{}; final newCityRef = db.collection("cities").doc(); // Later... newCityRef.set(data);
Jawa
Piton
Python
C++
DocumentReference new_city_ref = db->Collection("cities").Document();
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
DocumentReference addedDocRef = db.Collection("cities").Document(); Debug.Log(String.Format("Added document with ID: {0}.", addedDocRef.Id)); addedDocRef.SetAsync(city).ContinueWithOnMainThread(task => { Debug.Log(String.Format( "Added data to the {0} document in the cities collection.", addedDocRef.Id)); });
C#
Rubi
Di belakang layar, .add(...)
dan .doc().set(...)
benar-benar setara, sehingga Anda dapat menggunakan mana yang lebih nyaman.
Perbarui dokumen
Untuk memperbarui beberapa kolom dokumen tanpa menimpa seluruh dokumen, gunakan metode update()
khusus bahasa berikut:
Web version 9
Gunakan metode updateDoc()
:
import { doc, updateDoc } from "firebase/firestore"; const washingtonRef = doc(db, "cities", "DC"); // Set the "capital" field of the city 'DC' await updateDoc(washingtonRef, { capital: true });
Web version 8
Gunakan metode update()
:
var washingtonRef = db.collection("cities").doc("DC"); // Set the "capital" field of the city 'DC' return washingtonRef.update({ capital: true }) .then(() => { console.log("Document successfully updated!"); }) .catch((error) => { // The document probably doesn't exist. console.error("Error updating document: ", error); });
Cepat
Gunakan metode updateData()
:
let washingtonRef = db.collection("cities").document("DC") // Set the "capital" field of the city 'DC' washingtonRef.updateData([ "capital": true ]) { err in if let err = err { print("Error updating document: \(err)") } else { print("Document successfully updated") } }
Objective-C
Gunakan metode updateData:
::
FIRDocumentReference *washingtonRef = [[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"]; // Set the "capital" field of the city [washingtonRef updateData:@{ @"capital": @YES } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error updating document: %@", error); } else { NSLog(@"Document successfully updated"); } }];
Kotlin+KTX
Gunakan metode update()
:
val washingtonRef = db.collection("cities").document("DC") // Set the "isCapital" field of the city 'DC' washingtonRef .update("capital", true) .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully updated!") } .addOnFailureListener { e -> Log.w(TAG, "Error updating document", e) }
Java
Gunakan metode update()
:
DocumentReference washingtonRef = db.collection("cities").document("DC"); // Set the "isCapital" field of the city 'DC' washingtonRef .update("capital", true) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "DocumentSnapshot successfully updated!"); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error updating document", e); } });
Dart
Gunakan metode update()
:
final washingtonRef = db.collection("cites").doc("DC"); washingtonRef.update({"capital": true}).then( (value) => print("DocumentSnapshot successfully updated!"), onError: (e) => print("Error updating document $e"));
Jawa
Gunakan metode update()
:
Piton
Gunakan metode update()
:
Python
Gunakan metode update()
:
C++
Gunakan metode Update()
:
DocumentReference washington_ref = db->Collection("cities").Document("DC"); // Set the "capital" field of the city "DC". washington_ref.Update({{"capital", FieldValue::Boolean(true)}});
Node.js
Gunakan metode update()
:
Pergi
Gunakan metode Update()
:
PHP
Gunakan metode update()
:
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
Gunakan metode UpdateAsync()
:
DocumentReference cityRef = db.Collection("cities").Document("new-city-id"); Dictionary<string, object> updates = new Dictionary<string, object> { { "Capital", false } }; cityRef.UpdateAsync(updates).ContinueWithOnMainThread(task => { Debug.Log( "Updated the Capital field of the new-city-id document in the cities collection."); }); // You can also update a single field with: cityRef.UpdateAsync("Capital", false);
C#
Gunakan metode UpdateAsync()
:
Rubi
Gunakan metode update()
:
Stempel Waktu Server
Anda dapat menyetel bidang dalam dokumen Anda ke stempel waktu server yang melacak saat server menerima pembaruan.
Web version 9
import { updateDoc, serverTimestamp } from "firebase/firestore"; const docRef = doc(db, 'objects', 'some-id'); // Update the timestamp field with the value from the server const updateTimestamp = await updateDoc(docRef, { timestamp: serverTimestamp() });
Web version 8
var docRef = db.collection('objects').doc('some-id'); // Update the timestamp field with the value from the server var updateTimestamp = docRef.update({ timestamp: firebase.firestore.FieldValue.serverTimestamp() });
Cepat
db.collection("objects").document("some-id").updateData([ "lastUpdated": FieldValue.serverTimestamp(), ]) { err in if let err = err { print("Error updating document: \(err)") } else { print("Document successfully updated") } }
Objective-C
[[[self.db collectionWithPath:@"objects"] documentWithPath:@"some-id"] updateData:@{ @"lastUpdated": [FIRFieldValue fieldValueForServerTimestamp] } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error updating document: %@", error); } else { NSLog(@"Document successfully updated"); } }];
Kotlin+KTX
// If you're using custom Kotlin objects in Android, add an @ServerTimestamp // annotation to a Date field for your custom object classes. This indicates // that the Date field should be treated as a server timestamp by the object mapper. val docRef = db.collection("objects").document("some-id") // Update the timestamp field with the value from the server val updates = hashMapOf<String, Any>( "timestamp" to FieldValue.serverTimestamp() ) docRef.update(updates).addOnCompleteListener { }
Java
// If you're using custom Java objects in Android, add an @ServerTimestamp // annotation to a Date field for your custom object classes. This indicates // that the Date field should be treated as a server timestamp by the object mapper. DocumentReference docRef = db.collection("objects").document("some-id"); // Update the timestamp field with the value from the server Map<String,Object> updates = new HashMap<>(); updates.put("timestamp", FieldValue.serverTimestamp()); docRef.update(updates).addOnCompleteListener(new OnCompleteListener<Void>() { // ... // ...
Dart
final docRef = db.collection("objects").doc("some-id"); final updates = <String, dynamic>{ "timestamp": FieldValue.serverTimestamp(), }; docRef.update(updates).then( (value) => print("DocumentSnapshot successfully updated!"), onError: (e) => print("Error updating document $e"));
Jawa
Piton
Python
C++
DocumentReference doc_ref = db->Collection("objects").Document("some-id"); doc_ref.Update({{"timestamp", FieldValue::ServerTimestamp()}}) .OnCompletion([](const Future<void>& future) { // ... });
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
DocumentReference cityRef = db.Collection("cities").Document("new-city-id"); cityRef.UpdateAsync("Timestamp", FieldValue.ServerTimestamp) .ContinueWithOnMainThread(task => { Debug.Log( "Updated the Timestamp field of the new-city-id document in the cities " + "collection."); });
C#
Rubi
Saat memperbarui beberapa bidang stempel waktu di dalam transaksi , setiap bidang menerima nilai stempel waktu server yang sama.
Perbarui bidang di objek bersarang
Jika dokumen Anda berisi objek bersarang, Anda dapat menggunakan "notasi titik" untuk merujuk bidang bersarang di dalam dokumen saat Anda memanggil update()
:
Web version 9
import { doc, setDoc, updateDoc } from "firebase/firestore"; // Create an initial document to update. const frankDocRef = doc(db, "users", "frank"); await setDoc(frankDocRef, { name: "Frank", favorites: { food: "Pizza", color: "Blue", subject: "recess" }, age: 12 }); // To update age and favorite color: await updateDoc(frankDocRef, { "age": 13, "favorites.color": "Red" });
Web version 8
// Create an initial document to update. var frankDocRef = db.collection("users").doc("frank"); frankDocRef.set({ name: "Frank", favorites: { food: "Pizza", color: "Blue", subject: "recess" }, age: 12 }); // To update age and favorite color: db.collection("users").doc("frank").update({ "age": 13, "favorites.color": "Red" }) .then(() => { console.log("Document successfully updated!"); });
Cepat
// Create an initial document to update. let frankDocRef = db.collection("users").document("frank") frankDocRef.setData([ "name": "Frank", "favorites": [ "food": "Pizza", "color": "Blue", "subject": "recess" ], "age": 12 ]) // To update age and favorite color: db.collection("users").document("frank").updateData([ "age": 13, "favorites.color": "Red" ]) { err in if let err = err { print("Error updating document: \(err)") } else { print("Document successfully updated") } }
Objective-C
// Create an initial document to update. FIRDocumentReference *frankDocRef = [[self.db collectionWithPath:@"users"] documentWithPath:@"frank"]; [frankDocRef setData:@{ @"name": @"Frank", @"favorites": @{ @"food": @"Pizza", @"color": @"Blue", @"subject": @"recess" }, @"age": @12 }]; // To update age and favorite color: [frankDocRef updateData:@{ @"age": @13, @"favorites.color": @"Red", } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error updating document: %@", error); } else { NSLog(@"Document successfully updated"); } }];
Kotlin+KTX
// Assume the document contains: // { // name: "Frank", // favorites: { food: "Pizza", color: "Blue", subject: "recess" } // age: 12 // } // // To update age and favorite color: db.collection("users").document("frank") .update(mapOf( "age" to 13, "favorites.color" to "Red" ))
Java
// Assume the document contains: // { // name: "Frank", // favorites: { food: "Pizza", color: "Blue", subject: "recess" } // age: 12 // } // // To update age and favorite color: db.collection("users").document("frank") .update( "age", 13, "favorites.color", "Red" );
Dart
// Assume the document contains: // { // name: "Frank", // favorites: { food: "Pizza", color: "Blue", subject: "recess" } // age: 12 // } db .collection("users") .doc("frank") .update({"age": 13, "favorites.color": "Red"});
Jawa
Piton
Python
C++
// Assume the document contains: // { // name: "Frank", // favorites: { food: "Pizza", color: "Blue", subject: "recess" } // age: 12 // } // // To update age and favorite color: db->Collection("users").Document("frank").Update({ {"age", FieldValue::Integer(13)}, {"favorites.color", FieldValue::String("red")}, });
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
DocumentReference frankDocRef = db.Collection("users").Document("frank"); Dictionary<string, object> initialData = new Dictionary<string, object> { { "Name", "Frank" }, { "Age", 12 } }; Dictionary<string, object> favorites = new Dictionary<string, object> { { "Food", "Pizza" }, { "Color", "Blue" }, { "Subject", "Recess" }, }; initialData.Add("Favorites", favorites); frankDocRef.SetAsync(initialData).ContinueWithOnMainThread(task => { // Update age and favorite color Dictionary<string, object> updates = new Dictionary<string, object> { { "Age", 13 }, { "Favorites.Color", "Red" }, }; // Asynchronously update the document return frankDocRef.UpdateAsync(updates); }).ContinueWithOnMainThread(task => { Debug.Log( "Updated the age and favorite color fields of the Frank document in " + "the users collection."); });
C#
Rubi
Notasi titik memungkinkan Anda memperbarui satu bidang bersarang tanpa menimpa bidang bersarang lainnya. Jika Anda memperbarui bidang bersarang tanpa notasi titik, Anda akan menimpa seluruh bidang peta, misalnya:
Web
// Create our initial doc db.collection("users").doc("frank").set({ name: "Frank", favorites: { food: "Pizza", color: "Blue", subject: "Recess" }, age: 12 }).then(function() { console.log("Frank created"); }); // Update the doc without using dot notation. // Notice the map value for favorites. db.collection("users").doc("frank").update({ favorites: { food: "Ice Cream" } }).then(function() { console.log("Frank food updated"); }); /* Ending State, favorite.color and favorite.subject are no longer present: /users /frank { name: "Frank", favorites: { food: "Ice Cream", }, age: 12 } */
Perbarui elemen dalam array
Jika dokumen Anda berisi bidang array, Anda dapat menggunakan arrayUnion()
dan arrayRemove()
untuk menambah dan menghapus elemen. arrayUnion()
menambahkan elemen ke array tetapi hanya elemen yang belum ada. arrayRemove()
menghapus semua instance dari setiap elemen yang diberikan.
Web version 9
import { doc, updateDoc, arrayUnion, arrayRemove } from "firebase/firestore"; const washingtonRef = doc(db, "cities", "DC"); // Atomically add a new region to the "regions" array field. await updateDoc(washingtonRef, { regions: arrayUnion("greater_virginia") }); // Atomically remove a region from the "regions" array field. await updateDoc(washingtonRef, { regions: arrayRemove("east_coast") });
Web version 8
var washingtonRef = db.collection("cities").doc("DC"); // Atomically add a new region to the "regions" array field. washingtonRef.update({ regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia") }); // Atomically remove a region from the "regions" array field. washingtonRef.update({ regions: firebase.firestore.FieldValue.arrayRemove("east_coast") });
Cepat
let washingtonRef = db.collection("cities").document("DC") // Atomically add a new region to the "regions" array field. washingtonRef.updateData([ "regions": FieldValue.arrayUnion(["greater_virginia"]) ]) // Atomically remove a region from the "regions" array field. washingtonRef.updateData([ "regions": FieldValue.arrayRemove(["east_coast"]) ])
Objective-C
FIRDocumentReference *washingtonRef = [[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"]; // Atomically add a new region to the "regions" array field. [washingtonRef updateData:@{ @"regions": [FIRFieldValue fieldValueForArrayUnion:@[@"greater_virginia"]] }]; // Atomically remove a new region to the "regions" array field. [washingtonRef updateData:@{ @"regions": [FIRFieldValue fieldValueForArrayRemove:@[@"east_coast"]] }];
Kotlin+KTX
val washingtonRef = db.collection("cities").document("DC") // Atomically add a new region to the "regions" array field. washingtonRef.update("regions", FieldValue.arrayUnion("greater_virginia")) // Atomically remove a region from the "regions" array field. washingtonRef.update("regions", FieldValue.arrayRemove("east_coast"))
Java
DocumentReference washingtonRef = db.collection("cities").document("DC"); // Atomically add a new region to the "regions" array field. washingtonRef.update("regions", FieldValue.arrayUnion("greater_virginia")); // Atomically remove a region from the "regions" array field. washingtonRef.update("regions", FieldValue.arrayRemove("east_coast"));
Dart
final washingtonRef = db.collection("cities").doc("DC"); // Atomically add a new region to the "regions" array field. washingtonRef.update({ "regions": FieldValue.arrayUnion(["greater_virginia"]), }); // Atomically remove a region from the "regions" array field. washingtonRef.update({ "regions": FieldValue.arrayRemove(["east_coast"]), });
Jawa
Piton
Python
C++
// This is not yet supported.
Node.js
Pergi
// Not supported yet
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
// This is not yet supported in the Unity SDK
C#
Rubi
// Not supported yet
Menaikkan nilai numerik
Anda dapat menambah atau mengurangi nilai bidang numerik seperti yang diperlihatkan dalam contoh berikut. Operasi penambahan menambah atau mengurangi nilai saat ini dari suatu bidang dengan jumlah yang diberikan.
Web version 9
import { doc, updateDoc, increment } from "firebase/firestore"; const washingtonRef = doc(db, "cities", "DC"); // Atomically increment the population of the city by 50. await updateDoc(washingtonRef, { population: increment(50) });
Web version 8
var washingtonRef = db.collection('cities').doc('DC'); // Atomically increment the population of the city by 50. washingtonRef.update({ population: firebase.firestore.FieldValue.increment(50) });
Cepat
let washingtonRef = db.collection("cities").document("DC") // Atomically increment the population of the city by 50. // Note that increment() with no arguments increments by 1. washingtonRef.updateData([ "population": FieldValue.increment(Int64(50)) ])
Objective-C
FIRDocumentReference *washingtonRef = [[self.db collectionWithPath:@"cities"] documentWithPath:@"DC"]; // Atomically increment the population of the city by 50. // Note that increment() with no arguments increments by 1. [washingtonRef updateData:@{ @"population": [FIRFieldValue fieldValueForIntegerIncrement:50] }];
Kotlin+KTX
val washingtonRef = db.collection("cities").document("DC") // Atomically increment the population of the city by 50. washingtonRef.update("population", FieldValue.increment(50))
Java
DocumentReference washingtonRef = db.collection("cities").document("DC"); // Atomically increment the population of the city by 50. washingtonRef.update("population", FieldValue.increment(50));
Dart
var washingtonRef = db.collection('cities').doc('DC'); // Atomically increment the population of the city by 50. washingtonRef.update( {"population": FieldValue.increment(50)}, );
Jawa
Piton
Python
C++
// This is not yet supported.
Node.js
Pergi
PHP
PHP
Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .
Persatuan
// This is not yet supported in the Unity SDK.
C#
Rubi
Operasi penambahan berguna untuk mengimplementasikan penghitung, tetapi perlu diingat bahwa Anda dapat memperbarui satu dokumen hanya sekali per detik. Jika Anda perlu memperbarui penghitung Anda di atas tarif ini, lihat halaman Penghitung terdistribusi .