Bu hızlı başlangıç kılavuzunda; Cloud Firestore'un nasıl ayarlanacağı, veri ekleneceği ve az önce Firebase konsolunda eklediğiniz verileri nasıl görüntüleyeceğiniz gösterilmektedir.
Cloud Firestore veritabanı oluşturma
Henüz yapmadıysanız bir Firebase projesi oluşturun: Firebase konsolunda Proje ekle'yi tıklayın, ardından Firebase projesi oluşturmak veya Firebase hizmetlerini mevcut bir GCP projesine eklemek için ekrandaki talimatları uygulayın.
Firebase konsolunun Cloud Firestore bölümüne gidin. Mevcut bir Firebase projesini seçmeniz istenir. Veritabanı oluşturma iş akışını takip edin.
Cloud Firestore Güvenlik Kurallarınız için bir başlangıç modu seçin:
- Test modu
Mobil ve web istemci kitaplıklarını kullanmaya başlamak için idealdir, ancak herkesin verilerinizi okumasına ve üzerine yazmasına olanak tanır. Testten sonra Verilerinizin güvenliğini sağlayın bölümünü inceleyin.
Web, Apple platformları veya Android SDK'yı kullanmaya başlamak için test modunu seçin.
- Kilitli mod
Mobil istemcilerden ve web istemcilerinden tüm okuma ve yazma işlemlerini reddeder. Kimliği doğrulanmış uygulama sunucularınız (C#, Go, Java, Node.js, PHP, Python veya Ruby) veritabanınıza erişmeye devam edebilir.
C#, Go, Java, Node.js, PHP, Python veya Ruby sunucu istemci kitaplığını kullanmaya başlamak için kilitli modu seçin.
İlk Cloud Firestore Güvenlik Kurallarınız, varsayılan Cloud Firestore veritabanınızda geçerli olur. Projeniz için birden fazla veritabanı oluşturursanız her veritabanına Cloud Firestore Güvenlik Kuralları dağıtabilirsiniz.
Veritabanınız için bir konum seçin.
Bu konum ayarı, projenizin varsayılan Google Cloud Platform (GCP) kaynak konumudur. Bu konumun, projenizde konum ayarı gerektiren GCP hizmetleri, özellikle de varsayılan Cloud Storage paketiniz ve App Engine uygulamanız (Cloud Scheduler kullanıyorsanız gereklidir) için kullanılacağını unutmayın.
Konum seçemiyorsanız projenizin zaten varsayılan bir GCP kaynak konumu vardır. Bu değer, proje oluşturma sırasında veya konum ayarı gerektiren başka bir hizmet kurulurken ayarlanmıştır.
Done'ı (Bitti) tıklayın.
Cloud Firestore'u etkinleştirdiğinizde, API Cloud API Yöneticisi'nde de etkinleştirilir.
Geliştirme ortamınızı ayarlama
Gerekli bağımlılıkları ve istemci kitaplıklarını uygulamanıza ekleyin.
Web ad alanı API'si
- Firebase'i web uygulamanıza ekleme talimatlarını uygulayın.
- Firebase ve Cloud Firestore kitaplıklarını uygulamanıza ekleyin:
<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-firestore-compat.js"></script>
Cloud Firestore SDK'sı npm paketi olarak da mevcuttur.npm install firebase@10.12.2 --save
Hem Firebase'i hem de Cloud Firestore'u manuel olarak zorunlu kılmanız gerekir.import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web modüler API
- Firebase'i web uygulamanıza ekleme talimatlarını uygulayın.
-
Cloud Firestore SDK, npm paketi olarak sunulur.
npm install firebase@10.12.2 --save
Hem Firebase'i hem de Cloud Firestore'u içe aktarmanız gerekir.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS ve üzeri
Firebase'i Apple uygulamanıza ekleme talimatlarını uygulayın.
Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulamanız açıkken File > Swift Packages > Add Package Dependency (Dosya > Swift Paketleri > Paket Bağımlısı Ekle) seçeneğine gidin.
- İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
- Firestore kitaplığını seçin.
- İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk
Android
- Firebase'i Android uygulamanıza ekleme talimatlarını uygulayın.
- Firebase Android BoM'u kullanarak Android için Cloud Firestore kitaplığına olan bağımlılığı modül (uygulama düzeyinde) Gradle dosyanızda (genellikle
app/build.gradle.kts
veyaapp/build.gradle
) tanımlayın.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.0")) // 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") }
Firebase Android BoM kullanıldığında, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
(Alternatif) Firebase kitaplık bağımlılıklarını BoM kullanmadan bildirin
Firebase BoM'yi kullanmamayı seçerseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Böylece tüm sürümlerin uyumlu olması sağlanır.
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") }
Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Ekim 2023 sürümünden itibaren, hem Kotlin hem de Java geliştiricileri ana kitaplık modülüne bağlı olabilir (ayrıntılı bilgi için bu girişimle ilgili SSS sayfasını inceleyin).
Dart
- Henüz yapmadıysanız Flutter uygulamanızda Firebase'i yapılandırın ve başlatın.
- Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak eklentiyi yükleyin:
flutter pub add cloud_firestore
- İşlem tamamlandığında Flutter uygulamanızı yeniden derleyin:
flutter run
- İsteğe bağlı: Önceden derlenmiş çerçeveyi dahil ederek iOS ve macOS derleme sürelerini iyileştirin.
Şu anda iOS için Firestore SDK'sı, Xcode'da oluşturulması 5 dakikadan uzun sürebilecek koda ihtiyaç duymaktadır. Derleme sürelerini önemli ölçüde kısaltmak için Podfile dosyanızdaki
target 'Runner' do
bloğuna aşağıdaki satırı ekleyerek önceden derlenmiş bir sürüm kullanabilirsiniz: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
IOS_SDK_VERSION değerini,
firebase_core
uygulamasınınfirebase_sdk_version.rb
dosyasında belirtilen Firebase iOS SDK sürümüyle değiştirin.firebase_core
uygulamasının en son sürümünü kullanmıyorsanız yerel Pub paketi önbelleğinizde (genellikle~/.pub-cache
) bu dosyayı arayın.Ayrıca CocoaPods'u 1.9.1 veya sonraki bir sürüme yükselttiğinizden emin olun:
gem install cocoapods
Daha fazla bilgi için GitHub'daki soruna bakın.
Java
- Firebase Admin SDK'sını uygulamanıza ekleyin:
-
Gradle kullanarak:
compile 'com.google.firebase:firebase-admin:1.32.0'
-
Maven kullanılarak:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
-
Gradle kullanarak:
- Ortamınızdaki doğru kimlik bilgileriyle Cloud Firestore'u başlatmak için aşağıdaki talimatları uygulayın.
Python
- Firebase Admin SDK'yı Python uygulamanıza ekleyin:
pip install --upgrade firebase-admin
- Ortamınızdaki doğru kimlik bilgileriyle Cloud Firestore'u başlatmak için aşağıdaki talimatları uygulayın.
C++
- Firebase'i C++ projenize ekleme talimatlarını uygulayın.
- Android için C++ arayüzü.
- Bağımlılıkları kademeli olarak artırın. Modül
(uygulama düzeyinde) Gradle dosyanıza (genellikle
app/build.gradle
) şunu ekleyin: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 }
- İkili bağımlılıklar. Benzer şekilde, ikili program bağımlılıklarını almanın önerilen yolu,
CMakeLists.txt
dosyanıza aşağıdaki kodu eklemektir: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}")
- Masaüstü entegrasyonunu ayarlamak için Firebase'i C++ projenize ekleme bölümünü inceleyin.
Unity
- Firebase'i Unity projenize ekleme talimatlarını uygulayın.
- Projenizi Android derlemelerini küçültecek şekilde yapılandırmak için Unity arayüzünü kullanın.
- Bu seçenek Oynatıcı Ayarları > Android > Yayınlama Ayarları > Küçült'te bulunabilir.
- Seçenekler Unity'nin farklı sürümlerinde değişiklik gösterebilir. Bu nedenle resmi Unity belgelerini ve Firebase Unity Derleme Hata Ayıklama Kılavuzu'nu inceleyin.
-
Küçültmeyi etkinleştirdikten sonra referans verilen yöntemlerin sayısı sınırı aşıyorsa
multidex
aşağıda verilen diğer bir seçenek de etkinleştirilebilir:-
Oynatıcı Ayarları altındaki Özel Gradle Şablonu etkinse
mainTemplate.gradle
-
veya dışa aktarılan projeyi oluşturmak için Android Studio kullanıyorsanız modül düzeyindeki
build.gradle
dosyası.
-
Oynatıcı Ayarları altındaki Özel Gradle Şablonu etkinse
Error while merging dex archives
mesajından kaçınmak için derlemeyi küçültmeniz gerekir.
Node.js
-
Firebase Admin SDK'sını uygulamanıza ekleyin:
npm install firebase-admin --save
- Ortamınızdaki doğru kimlik bilgileriyle Cloud Firestore'u başlatmak için aşağıdaki talimatları uygulayın.
Go
- Firebase Admin SDK'sını Go uygulamanıza ekleyin:
go get firebase.google.com/go
- Ortamınızdaki doğru kimlik bilgileriyle Cloud Firestore'u başlatmak için aşağıdaki talimatları uygulayın.
PHP
-
Cloud Firestore sunucusu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulaması Varsayılan Kimlik Bilgilerini kullanır.
-
Geliştirme ortamınızdan kimlik doğrulamak için
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini bir JSON hizmet hesabı anahtar dosyasına işaret edecek şekilde ayarlayın. API Konsolu Kimlik Bilgileri sayfasında anahtar dosyası oluşturabilirsiniz.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırıyorsanız üretim ortamınızda kimlik doğrulaması yapmanız gerekmez. Aksi halde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
- İstemci kitaplığını kullanmanız gereken PHP için gRPC uzantısını yükleyip etkinleştirin.
-
Cloud Firestore PHP kitaplığını uygulamanıza ekleyin:
composer require google/cloud-firestore
C#
-
Cloud Firestore sunucusu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulaması Varsayılan Kimlik Bilgilerini kullanır.
-
Geliştirme ortamınızdan kimlik doğrulamak için
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini bir JSON hizmet hesabı anahtar dosyasına işaret edecek şekilde ayarlayın. API Konsolu Kimlik Bilgileri sayfasında anahtar dosyası oluşturabilirsiniz.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırıyorsanız üretim ortamınızda kimlik doğrulaması yapmanız gerekmez. Aksi halde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
-
Cloud Firestore C# kitaplığını,
.csproj
dosyanızdaki uygulamanıza ekleyin:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
-
Program.cs
dosyanıza aşağıdakileri ekleyin:using Google.Cloud.Firestore;
Ruby
-
Cloud Firestore sunucusu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulaması Varsayılan Kimlik Bilgilerini kullanır.
-
Geliştirme ortamınızdan kimlik doğrulamak için
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini bir JSON hizmet hesabı anahtar dosyasına işaret edecek şekilde ayarlayın. API Konsolu Kimlik Bilgileri sayfasında anahtar dosyası oluşturabilirsiniz.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- Uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırıyorsanız üretim ortamınızda kimlik doğrulaması yapmanız gerekmez. Aksi halde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
-
Cloud Firestore Ruby kitaplığını
Gemfile
cihazınızda uygulamanıza ekleyin:gem "google-cloud-firestore"
-
Bağımlılıkları
Gemfile
dosyanızdaki şu komutu kullanarak yükleyin:bundle install
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturun ve test edin
Mobil uygulama geliştiricilerin, uygulamalarının Cloud Firestore'a yazma ve Cloud Firestore'dan okuma yapma şekli hakkında konuşmadan önce, Cloud Firestore işlevinin prototipini oluşturmak ve test etmek için kullanabileceğiniz bir araç setinden bahsedelim: Firebase Local Emulator Suite. Farklı veri modelleri deniyorsanız, güvenlik kurallarınızı optimize ediyorsanız veya arka uçla etkileşim kurmanın en uygun maliyetli yolunu bulmaya çalışıyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek çok iyi bir fikir olabilir.
Local Emulator Suite'in bir parçası olan Cloud Firestore emülatörü, uygulamanızın emüle edilmiş veritabanı içeriğiniz ve yapılandırmanızın yanı sıra isteğe bağlı olarak emüle edilen proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşimde bulunmasını sağlar.
Cloud Firestore emülatörünü kullanmak için birkaç adım yeterlidir:
- Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
- Yerel proje dizininizin kök dizininden
firebase emulators:start
komutunu çalıştırın. - Her zamanki gibi bir Cloud Firestore platform SDK'sı kullanarak uygulamanızın prototip kodundan çağrı yapma.
Cloud Firestore ve Cloud Functions'ı içeren ayrıntılı bir adım adım açıklamalı kılavuz mevcuttur. Ayrıca Local Emulator Suite tanıtımı'na da göz atmalısınız.
Cloud Firestore'u ilk kullanıma hazırlama
Bir Cloud Firestore örneğini başlatın:
Web modüler API
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);
FIREBASE_CONFIGURATION yerine web uygulamanızın firebaseConfig
değerini girin.
Cihazın bağlantısı kesildiğinde verileri saklamak için Çevrimdışı Verileri Etkinleştirme dokümanlarına bakın.
Web ad alanı API'si
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();
FIREBASE_CONFIGURATION yerine web uygulamanızın firebaseConfig
değerini girin.
Cihazın bağlantısı kesildiğinde verileri saklamak için Çevrimdışı Verileri Etkinleştirme dokümanlarına bakın.
Hızlı
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Hedef-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
Cloud Firestore SDK, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Eksiksiz referans için Yönetici SDK'sını başlatma bölümüne bakın.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();
Firebase Admin SDK'yı kendi sunucunuzda kullanmak için bir hizmet hesabı kullanın.
Google Cloud konsolunda IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından bu dosyayı kullanarak SDK'yı başlatın:
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
Cloud Firestore SDK, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Eksiksiz referans için Yönetici SDK'sını başlatma bölümüne bakın.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
SDK'yı başlatmak için mevcut bir uygulama varsayılan kimlik bilgisi de kullanılabilir.
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()
Firebase Admin SDK'yı kendi sunucunuzda kullanmak için bir hizmet hesabı kullanın.
Google Cloud konsolunda IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından bu dosyayı kullanarak SDK'yı başlatın:
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, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Eksiksiz referans için Yönetici SDK'sını başlatma bölümüne bakın.import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
SDK'yı başlatmak için mevcut bir uygulama varsayılan kimlik bilgisi de kullanılabilir.
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()
Firebase Admin SDK'yı kendi sunucunuzda kullanmak için bir hizmet hesabı kullanın.
Google Cloud konsolunda IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından bu dosyayı kullanarak SDK'yı başlatın:
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, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Eksiksiz referans için Yönetici SDK'sını başlatma bölümüne bakın.-
Cloud Functions'da ilk kullanıma hazırlama
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Google Cloud'da ilk kullanıma hazırlayın
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Kendi sunucunuzda ilk kullanıma hazırlama
Firebase Admin SDK'yı kendi sunucunuzda (veya başka herhangi bir Node.js ortamında) kullanmak için bir hizmet hesabı kullanın. Google Cloud konsolunda IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından bu dosyayı kullanarak SDK'yı başlatın:
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
Cloud Firestore SDK, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Eksiksiz referans için Yönetici SDK'sını başlatma bölümüne bakın.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()
Firebase Admin SDK'yı kendi sunucunuzda kullanmak için bir hizmet hesabı kullanın.
Google Cloud konsolunda IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından bu dosyayı kullanarak SDK'yı başlatın:
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
Cloud Firestore istemcisi yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore İstemci Kitaplıkları'na bakın.
Unity
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Cloud Firestore istemcisi yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore İstemci Kitaplıkları'na bakın.
Ruby
Veri ekleyin
Cloud Firestore, verileri Belgeler'de depolar ve bu veriler Koleksiyonlar'da depolanır. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyonları ve belgeleri dolaylı olarak oluşturur. Açıkça koleksiyon veya doküman oluşturmanız gerekmez.
Aşağıdaki örnek kodu kullanarak yeni bir koleksiyon ve doküman oluşturun.
Web modüler API
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 ad alanı API'si
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
Cloud Firestore istemcisi yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore İstemci Kitaplıkları'na bakın.
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
Şimdi users
koleksiyonuna başka bir doküman ekleyin. Bu belgenin, ilk dokümanda görünmeyen bir anahtar/değer çifti (ikinci ad) içerdiğine dikkat edin. Koleksiyondaki dokümanlar farklı bilgi grupları içerebilir.
Web modüler API
// 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 ad alanı API'si
// 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
Cloud Firestore istemcisi yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore İstemci Kitaplıkları'na bakın.
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
Verileri okuma
Cloud Firestore'a veri eklediğinizi hızlıca doğrulamak için Firebase konsolundaki veri görüntüleyiciyi kullanın.
Koleksiyonun tamamını almak için "get" yöntemini de kullanabilirsiniz.
Web modüler API
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web ad alanı API'si
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
Cloud Firestore istemcisi yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore İstemci Kitaplıkları'na bakın.
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
Verilerinizin güvenliğini sağlayın
Web, Android veya Apple platform SDK'sı kullanıyorsanız Cloud Firestore'daki verilerinizin güvenliğini sağlamak için Firebase Authentication ve Cloud Firestore Güvenlik Kuralları'ndan yararlanın.
Başlamak için kullanabileceğiniz bazı temel kural gruplarını aşağıda bulabilirsiniz. Güvenlik kurallarınızı konsolun Kurallar sekmesinde değiştirebilirsiniz.
Yetkilendirme gerekiyor
// 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;
}
}
}
Kilitli mod
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Web, Android veya iOS uygulamanızı üretim kanalına dağıtmadan önce Cloud Firestore verilerinize yalnızca uygulama istemcilerinizin erişebilmesini sağlayacak adımları uygulayın. Uygulama Kontrolü dokümanlarını inceleyin.
Sunucu SDK'larından birini kullanıyorsanız Cloud Firestore'daki verilerinizin güvenliğini sağlamak için Identity and Access Management (IAM) teknolojisini kullanın.
Eğitim videosunu izleyin
Cloud Firestore mobil istemci kitaplıklarını kullanmaya başlama hakkında ayrıntılı bilgi için aşağıdaki eğitim videolarından birini izleyin:
Web
iOS ve üzeri
Android
Firebase YouTube kanalında daha fazla video bulabilirsiniz.
Sonraki adımlar
Aşağıdaki konularla bilgilerinizi derinleştirin:
- Codelabs: Android, iOS veya Web için codelab'i izleyerek Cloud Firestore'u gerçek bir uygulamada kullanmayı öğrenin.
- Veri modeli: Hiyerarşik veriler ve alt koleksiyonlar dahil olmak üzere, verilerin Cloud Firestore'da nasıl yapılandırıldığı hakkında daha fazla bilgi edinin.
- Veri ekleme: Cloud Firestore'da veri oluşturma ve güncelleme hakkında daha fazla bilgi edinin.
- Veri alma: Verileri nasıl alacağınız hakkında daha fazla bilgi edinin.
- Basit ve bileşik sorgular gerçekleştirme: Basit ve bileşik sorgular çalıştırmayı öğrenin.
- Sorguları sıralama ve sınırlama Sorgularınızın döndürdüğü verileri nasıl sıralayacağınızı ve sınırlayacağınızı öğrenin.