Bu hızlı başlangıç kılavuzunda, Cloud Firestore'ü nasıl ayarlayacağınız, veri ekleyeceğiniz ve eklediğiniz verileri Firebase konsolunda 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 mevcut bir Google Cloud projesine Firebase hizmetleri eklemek için ekrandaki talimatları uygulayın.
Projenizi Firebase konsolunda açın. Sol panelde Derleme'yi genişletin ve ardından Firestore veritabanı'nı seçin.
Create database'i (Veritabanı oluştur) tıklayın.
Veritabanı için bir konum seçin.
Bir konum seçemiyorsanız projenizin "varsayılan Google Cloud kaynakları için konumu" zaten ayarlanmıştır. Projenizin bazı kaynakları (varsayılan Cloud Firestore örneği gibi) ortak bir konum bağımlılığı paylaşır ve konumları proje oluşturulurken veya bu konum bağımlılığını paylaşan başka bir hizmet kurulurken ayarlanabilir.
Cloud Firestore Security Rules cihazınız için bir başlangıç modu seçin:
- Test modu
Mobil ve web istemci kitaplıklarını kullanmaya başlamak için iyi bir seçenektir ancak herkesin verilerinizi okumasına ve verilerinizin üzerine yazmasına izin verir. Test ettikten sonra Verilerinizin güvenliğini sağlama bölümünü inceleyin.
Web'i, Apple platformlarını veya Android SDK'sını kullanmaya başlamak için test modunu seçin.
- Kilitli mod
Mobil ve web istemcilerinden gelen 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 Security Rules kümeniz, varsayılan Cloud Firestore veritabanınıza uygulanır. Projeniz için birden fazla veritabanı oluşturursanız her veritabanı için Cloud Firestore Security Rules dağıtabilirsiniz.
Oluştur'u tıklayın.
Cloud Firestore etkinleştirildiğinde API, Cloud API Yöneticisi'nde de etkinleştirilir.
Geliştirme ortamınızı kurma
Uygulamanıza gerekli bağımlılıkları ve istemci kitaplıklarını ekleyin.
Web
- 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/11.0.2/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/11.0.2/firebase-firestore-compat.js"></script>
Cloud Firestore SDK'sı npm paketi olarak da kullanılabilir.npm install firebase@11.0.2 --save
Hem Firebase'i hem de Cloud Firestore'ı manuel olarak zorunlu kılmanız gerekir.import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web
- Firebase'i web uygulamanıza ekleme talimatlarını uygulayın.
-
Cloud Firestore SDK'sı npm paketi olarak kullanılabilir.
npm install firebase@11.0.2 --save
Hem Firebase'i hem de Cloud Firestore'ı içe aktarmanız gerekir.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Firebase'i Apple uygulamanıza ekleme talimatlarını uygulayın.
Firebase bağımlılarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.
Firebase SDK'larını Apple projenize eklemenin farklı yolları (ör. doğrudan çerçeveleri içe aktarma ve CocoaPods kullanma) hakkında bilgi edinmek için- 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ıları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, modül (uygulama düzeyi) Gradle dosyanızda (genellikle
app/build.gradle.kts
veyaapp/build.gradle
) Android için Cloud Firestore kitaplığına olan bağımlılığı tanımlayın.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.7.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 Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.
(Alternatif) Firebase kitaplığı bağımlılıkları, BoM
Firebase BoM 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. Bu, tüm sürümlerin uyumlu olmasını sağlar.
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.1.1") }
Kotlin'e özgü 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 güvenebilir (ayrıntılar için bu girişimle ilgili SSS bölümüne bakın).
Dart
- Henüz yapmadıysanız Flutter uygulamanızda Firebase'i yapılandırın ve başlatın.
- Flutter projenizin kökünden aşağıdaki komutu çalıştırarak eklentiyi yükleyin:
flutter pub add cloud_firestore
- İşlem tamamlandığında Flutter uygulamanızı yeniden oluşturun:
flutter run
- İsteğe bağlı: Önceden derlenmiş çerçeveyi ekleyerek iOS ve macOS derleme sürelerini iyileştirin.
Şu anda iOS için Firestore SDK'sı, Xcode'da derlemesi 5 dakikadan uzun sürebilecek kodlara bağlıdır. Derleme sürelerini önemli ölçüde kısaltmak için Podfile'inizdeki
target 'Runner' do
bloğuna şu 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
'unfirebase_sdk_version.rb
dosyasında belirtilen Firebase iOS SDK'sının sürümüyle değiştirin.firebase_core
'ün en son sürümünü kullanmıyorsanız bu dosyayı yerel Pub paketi önbelleğinizde (genellikle~/.pub-cache
) arayın.Ayrıca, CocoaPods'u 1.9.1 veya daha yeni bir sürüme geçirdiğinizden emin olun:
gem install cocoapods
Daha fazla bilgi için GitHub'daki konuyu inceleyin.
Java
- Firebase Admin SDK'sını uygulamanıza ekleyin:
-
Gradle'i kullanma:
compile 'com.google.firebase:firebase-admin:1.32.0'
-
Maven'i kullanma:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
-
Gradle'i kullanma:
- Ortamınızda Cloud Firestore'ü doğru kimlik bilgileriyle başlatmak için aşağıdaki talimatları uygulayın.
Python
- Firebase Admin SDK'sını Python uygulamanıza ekleyin:
pip install --upgrade firebase-admin
- Ortamınızda Cloud Firestore'ü doğru kimlik bilgileriyle 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ü.
- Gradle bağımlılıkları. Modülünüzün (uygulama düzeyinde) Gradle dosyasına (genellikle
app/build.gradle
) aşağıdakileri 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 program bağımlılıkları. Benzer şekilde, ikili bağımlılıkların alınması için önerilen yöntem,
CMakeLists.txt
dosyanıza aşağıdakileri 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 başlıklı makaleyi inceleyin.
Unity
- Firebase'i Unity projenize ekleme ile ilgili talimatları uygulayın.
- Projenizi Android derlemelerini küçültecek şekilde yapılandırmak için Unity arayüzünü kullanın.
- Bu seçeneği Oynatıcı Ayarları > Android > Yayınlama Ayarları > Kompakt bölümünde bulabilirsiniz.
- Seçenekler Unity'nin farklı sürümlerinde farklılık gösterebilir. Bu nedenle, resmi Unity belgelerine ve Firebase Unity Derleme Hata Ayıklama Kılavuzu'na bakın.
-
Küçükleştirmeyi etkinleştirdikten sonra referans verilen yöntem sayısı yine de sınırı aşıyorsa
multidex
'ü şu yerlerde etkinleştirmeyi deneyebilirsiniz:-
mainTemplate.gradle
Oynatıcı Ayarları bölümünde Özel Gradle Şablonu etkinse -
veya dışa aktarılan projeyi derlemek için Android Studio'yu kullanıyorsanız modül düzeyindeki
build.gradle
dosyası.
-
Error while merging dex archives
mesajını önlemek için derlemeyi küçültmeniz gerekir.
Node.js
-
Firebase Admin SDK'sını uygulamanıza ekleyin:
npm install firebase-admin --save
- Ortamınızda Cloud Firestore'ü doğru kimlik bilgileriyle 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ızda Cloud Firestore'ü doğru kimlik bilgileriyle başlatmak için aşağıdaki talimatları uygulayın.
PHP
-
Cloud Firestore sunucu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulama Varsayılan Kimlik Bilgileri'ni 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ını 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"
- Üretim ortamınızda, uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırırsanız kimlik doğrulamanız gerekmez. Aksi takdirde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
- PHP için gRPC uzantısını yükleyip etkinleştirin. Bu uzantıyı, istemci kitaplığını kullanmak için kullanmanız gerekir.
-
Cloud Firestore PHP kitaplığını uygulamanıza ekleyin:
composer require google/cloud-firestore
C#
-
Cloud Firestore sunucu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulama Varsayılan Kimlik Bilgileri'ni 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ını 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"
- Üretim ortamınızda, uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırırsanız kimlik doğrulamanız gerekmez. Aksi takdirde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
-
.csproj
dosyanızdaki uygulamanıza Cloud Firestore C# kitaplığını 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 sunucu istemci kitaplıkları (Java, Node.js, Python, Go, PHP, C# ve Ruby), kimlik doğrulama için Google Uygulama Varsayılan Kimlik Bilgileri'ni 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ını 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"
- Üretim ortamınızda, uygulamanızı Cloud Firestore için kullandığınız projeyi kullanarak App Engine veya Compute Engine'de çalıştırırsanız kimlik doğrulamanız gerekmez. Aksi takdirde bir hizmet hesabı oluşturun.
-
Geliştirme ortamınızdan kimlik doğrulamak için
-
Gemfile
dosyanızdaki uygulamanıza Cloud Firestore Ruby kitaplığını ekleyin:gem "google-cloud-firestore"
-
Aşağıdakileri kullanarak
Gemfile
'ünüzden bağımlılıkları yükleyin:bundle install
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturma ve test etme
Mobil geliştiriciler için, uygulamanızın Cloud Firestore'e nasıl yazdığı ve Cloud Firestore'den nasıl okuduğu hakkında konuşmadan önce Cloud Firestore işlevini prototip haline getirmek ve test etmek için kullanabileceğiniz bir dizi araçtan bahsedelim: Firebase Local Emulator Suite. Farklı veri modellerini denemek, güvenlik kurallarınızı optimize etmek veya arka uçla etkileşim kurmanın en uygun maliyetli yolunu bulmak için çalışıyorsanız canlı hizmetler dağıtmadan yerel olarak çalışabilmek mükemmel bir fikir olabilir.
Cloud Firestore emülatörü, Local Emulator Suite'un bir parçasıdır. Bu emülatör, uygulamanızın emülasyonlu veritabanı içeriğiniz ve yapılandırmanızın yanı sıra isteğe bağlı olarak emülasyonlu proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlar.
Cloud Firestore emülatörünü kullanmanın birkaç adımı vardır:
- Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleyin.
- Yerel proje dizininizin kökünden
firebase emulators:start
çalıştırın. - Her zamanki gibi Cloud Firestore platform SDK'sını kullanarak uygulamanızın prototip kodundan çağrı yapma
Cloud Firestore ve Cloud Functions ile ilgili ayrıntılı bir adım adım açıklamalı kılavuz mevcuttur. Local Emulator Suite girişine de göz atmanız önerilir.
Cloud Firestore başlatılıyor
Cloud Firestore örneğini başlatın:
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);
FIREBASE_CONFIGURATION değerini web uygulamanızın firebaseConfig
değeriyle değiştirin.
Cihaz bağlantısını kaybettiğinde verileri korumak için Çevrimdışı Verileri Etkinleştirme dokümanlarına bakın.
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();
FIREBASE_CONFIGURATION değerini web uygulamanızın firebaseConfig
değeriyle değiştirin.
Cihaz bağlantısını kaybettiğinde verileri korumak için Çevrimdışı Verileri Etkinleştirme dokümanlarına bakın.
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
Cloud Firestore SDK'sı, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Tam referans için Yönetici SDK'sını başlatma başlıklı makaleyi inceleyin.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 Console'da IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından, SDK'yı başlatmak için dosyayı kullanı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'sı, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Tam referans için Yönetici SDK'sını başlatma başlıklı makaleyi inceleyin.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 Console'da IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından, SDK'yı başlatmak için dosyayı kullanı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'sı, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Tam referans için Yönetici SDK'sını başlatma başlıklı makaleyi inceleyin.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 Console'da IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından, SDK'yı başlatmak için dosyayı kullanı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'sı, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Tam referans için Yönetici SDK'sını başlatma başlıklı makaleyi inceleyin.-
Cloud Functions tarihinde başlatılacak
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Google Cloud tarihinde başlatılacak
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 başlatma
Firebase Admin SDK'sını kendi sunucunuzda (veya başka bir Node.js ortamında) kullanmak için hizmet hesabı kullanın. Google Cloud Console'da IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından, SDK'yı başlatmak için dosyayı kullanı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'sı, ortamınıza bağlı olarak farklı şekillerde başlatılır. En yaygın yöntemler aşağıda verilmiştir. Tam referans için Yönetici SDK'sını başlatma başlıklı makaleyi inceleyin.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 Console'da IAM ve yönetici > Hizmet hesapları'na gidin. Yeni bir özel anahtar oluşturun ve JSON dosyasını kaydedin. Ardından, SDK'yı başlatmak için dosyayı kullanı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 istemcisini yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore istemci kitaplıkları başlıklı makaleyi inceleyin.
Unity
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Cloud Firestore istemcisini yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore istemci kitaplıkları başlıklı makaleyi inceleyin.
Ruby
Veri ekle
Cloud Firestore, verileri Koleksiyonlar'da depolanan Dokümanlar'da saklar. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyonları ve dokümanları dolaylı olarak oluşturur. Koleksiyon veya doküman oluşturmanız gerekmez.
Aşağıdaki örnek kodu kullanarak yeni bir koleksiyon ve doküman oluşturun.
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
Cloud Firestore istemcisini yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore istemci kitaplıkları başlıklı makaleyi inceleyin.
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
Ardından users
koleksiyonuna başka bir doküman ekleyin. Bu belgede, ilk belgede görünmeyen bir anahtar/değer çifti (orta ad) bulunduğunu unutmayın. Koleksiyondaki belgeler farklı bilgi kümeleri içerebilir.
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
Cloud Firestore istemcisini yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore istemci kitaplıkları başlıklı makaleyi inceleyin.
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'ye 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
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
Cloud Firestore istemcisini yükleme ve oluşturma hakkında daha fazla bilgi için Cloud Firestore istemci kitaplıkları başlıklı makaleyi inceleyin.
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ğlama
Web, Android veya Apple platform SDK'larını kullanıyorsanız Cloud Firestore'deki verilerinizi korumak için Firebase Kimlik Doğrulama'yı ve Cloud Firestore Security Rules'ı kullanın.
Başlamak için kullanabileceğiniz bazı temel kural kümeleri aşağıda verilmiştir. Güvenlik kurallarınızı konsolun Kurallar sekmesinde değiştirebilirsiniz.
Yetkilendirme gerekli
// 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ı üretime dağıtmadan önce, Cloud Firestore verilerinize yalnızca uygulama istemcilerinizin erişebildiğinden emin olmak için de gerekli adımları atın. Uygulama Kontrolü belgelerini inceleyin.
Sunucu SDK'larından birini kullanıyorsanız Cloud Firestore'deki verilerinizi korumak için Kimlik ve Erişim Yönetimi (IAM)'ni kullanın.
Eğitim videosu izleyin
Cloud FirestoreMobil 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+
Android
Firebase YouTube kanalında daha fazla video bulabilirsiniz.
Sonraki adımlar
Aşağıdaki konular hakkında bilgi edinerek bilginizi artırın:
- Codelabs: Android, iOS veya Web için Codelab'i uygulayarak Cloud Firestore'yi gerçek bir uygulamada kullanmayı öğrenin.
- Veri modeli: Hiyerarşik veriler ve alt koleksiyonlar dahil olmak üzere verilerin Cloud Firestore'te nasıl yapılandırıldığı hakkında daha fazla bilgi edinin.
- Veri ekleme: Cloud Firestore'te 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 yürütme: Basit ve bileşik sorguları nasıl çalıştıracağınızı öğrenin.
- Sorguları sıralama ve sınırlama Sorgularınız tarafından döndürülen verileri nasıl sıralayacağınızı ve sınırlayacağınızı öğrenin.