Google Cloud'un Firestore API'si hakkında bilmeniz gereken her şey
Google Cloud'un Firestore API'si hakkında bilmeniz gereken her şey

Geliştiriciler, Ürün Sahipleri ve Sunucusuz Teknoloji Tutkunları İçin Eksiksiz Kılavuz

Google Cloud'un Firestore API'si hakkında bilmeniz gereken her şey

Google Firestore, Firebase ve Google Cloud tarafından sağlanan dünyanın en popüler bulut tabanlı NoSQL veritabanlarından biridir. Firestore, gerçek zamanlı uygulamalar oluşturmak için uygundur, ölçeklenebilirdir, sunucu yönetimi gerektirmez ve çok hızlıdır. Bu veritabanı, REST API, gRPC ve çeşitli SDK'larla birlikte sunulur ve mobil, web ve arka uç geliştiricileri arasında oldukça popülerdir. Bu makalede, Firestore'u pratik örnekler, onunla oluşturulabilecek projeler, başarılı uygulama örnekleri, mimarisi, güvenliği ve en iyi uygulamalarıyla eksiksiz ve kapsamlı bir şekilde tanıtacağız.
0 Hisse senetleri
0
0
0
0

Firestore nedir?

Firestore, aşağıdaki özelliklere sahip Belge/Koleksiyon tabanlı bir NoSQL bulut veritabanıdır:

  • Yapılandırılmış ve esnek depolama
  • Gerçek zamanlı Senkronizasyon yeteneği
  • Firebase Güvenlik Kuralları ile üst düzey güvenlik
  • Otomatik ölçeklenebilirlik
  • Dünya genelinde çok düşük gecikme süresi
  • Karmaşık sorguları yürütme yeteneği
  • Küçük ve kurumsal projeler için uygundur

Firestore iki modda Yerel Mod (Firebase'e özgü) ve Veri Deposu Modu (GCP Enterprise hizmetleri için sağlanmıştır).


Firestore'daki Veri Yapısı

Firestore basit ama güçlü bir mimari kullanır:

  • Koleksiyon → Belgelerin bir koleksiyonu

  • Belge → JSON benzeri bir yapı

  • Alt koleksiyon → Her Belgenin İçindeki Koleksiyon

  • Alan → Her Belgenin Alanları

Örnek yapı:

users (collection)
   └── userId123 (document)
    ├── name: "Ali"
    ├── age: 28
    └── posts (subcollection)
      └── postId981 (document)
        ├── title: "My First Post"
        └── likes: 52

Firestore API'sini kullanan örnek kod örnekleri

1. JavaScript ile kullanın (Web Uygulaması / Node.js)

Kurulum

npm install firebase

Firestore'a bağlanma

import { initializeApp } from "firebase/app";
import { getFirestore, doc, setDoc, getDoc } from "firebase/firestore";
const firebaseConfig = {
apiKey: "...",
authDomain: "...",
projectId: "...",
};
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

Belge Ekle

await setDoc(doc(db, "users", "user1"), {
name: "Ali",
age: 28,
job: "Developer"
});

Okuma Belgesi

const docRef = doc(db, "users", "user1");
const snap = await getDoc(docRef);
if (snap.exists()) {
console.log("Data:", snap.data());
}

2. Firestore REST API

Bir Belge oluşturmak için bir POST isteği gönderin

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{
"fields": {
"title": {"stringValue": "New Article"},
"views": {"integerValue": "102"}
}
}' \
"https://firestore.googleapis.com/v1/projects/YOUR_PROJECT/databases/(default)/documents/posts"


Firestore ile oluşturulabilecek projeler

1. Sohbet ve mesajlaşma uygulamaları (Gerçek zamanlı Sohbet Uygulaması)

Anında senkronizasyon özelliği sayesinde Firestore sohbet kurmak için en iyi seçeneklerden biridir.

2. İçerik Yönetim Sistemleri (Blog, CMS)

Özellikle sunucularla uğraşmak istemeyen küçük ekipler veya startup'lar için.

3. Mobil Uygulamalar (iOS / Android / Flutter)

Dolayı:

  • Düşük Gecikme

  • Eşzamanlı Senkronizasyon

  • Dahili Çevrimdışı Modu

4. Gerçek Zamanlı Yönetim Panoları (Yönetici Panelleri)

Online mağaza panosu, kullanıcı istatistikleri, sipariş yönetimi gibi.

5. Küçük ve orta ölçekli çevrimiçi mağaza

Ürün, kategori, alışveriş sepeti, sipariş vb. ekleyin.

6. IoT uygulamaları

Sensör verilerinin hızlı depolanması.


Firestore kullanan başarılı proje örnekleri

  • Alibaba Cloud Mobil – Gerçek Zamanlı Veri Yönetimi için Firestore Kullanımı

  • New York Times Bulmacası – Çevrimiçi çok oyunculu oyun için kullanın

  • Todoist – Kullanıcı görevlerini birden fazla cihazda senkronize edin

  • Shazam – Bazı bulut verilerini yönetme

  • Sıcak yıldız – Kullanıcı verilerini ve profil ayarlarını kaydedin

(Birçok servis resmi olarak duyurmadan Firestore'u perde arkasında kullanıyor)


Firestore'un Faydaları

Otomatik ölçeklenebilirlik

Sunucuyu yönetmeye gerek yok.

Yüksek okuma hızı

Global Edge mimarisi göz önüne alındığında.

Güvenlik ile Firestore Güvenlik Kuralları

Sadece hesap sahibinin okuma/yazma iznine sahip olduğu örnek kural:

service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth.uid == uid;
}
}
}
Çevrimdışı Mod Desteği

Mobil ve web'de.

Güçlü Sorgular

Filtreleme, sıralama, aralık sorgulama, indeksleme.


Zorluklar ve sınırlamalar (kullanmadan önce bilmeniz gerekenler)

❌ Katılım Yok (NoSQL)
❌ Karmaşık sorgular indeks gerektirir.
❌ Maliyet, Okuma/Yazma/Depolama sayısına göre hesaplanır
❌ Çok büyük veri kümeleri (TB ve üzeri) için uygun değildir
❌ İşlemler sınırlıdır.


Firestore ve Gerçek Zamanlı Veritabanı Karşılaştırması

ÖzellikYangın deposuGerçek zamanlı veritabanı
Veri yapısıBelge tabanlıJSON Ağacı
SorguÇok güçlüÇok sınırlı
ÖlçeklenebilirlikTepeOrta
FiyatSıradanDaha ucuz
KullanımlarıModern uygulamalarBasit Sohbet, IoT

Firestore, Realtime DB'nin daha yeni ve daha optimize edilmiş bir sürümüdür.


Profesyonel üretim için Firestore en iyi uygulamaları

1. Doğru veri yapısını seçin

Büyük belgeler oluşturmamanız önerilir.

2. Verileri segmentlere ayırmak için Alt Koleksiyonu kullanın

Örnek: gönderiler → yorumlar → beğeniler

3. Önbelleğe alınmış yoğun sorgular

Okuma maliyetini düşürmek için.

4. Arka uç işleme için Bulut İşlevlerini kullanın

Bildirim gönderme, indeks oluşturma, veri özetleme gibi.

5. Firestore'da Oturum Açma

İstenmeyen maliyetlerden kaçınmak için.


Firestore ile tam bir blog sistemi örneği

Önerilen yapı:

posts (collection)
  └── postId
    ├── title
    ├── content
    ├── authorId
    ├── createdAt
    └── comments (subcollection)
      └── commentId
        ├── userId
        └── message

Gönderi ekleme örneği:

import { collection, addDoc, serverTimestamp } from "firebase/firestore";
await addDoc(collection(db, "posts"), {
title: "First Blog Post",
content: "This is the content...",
authorId: "u123",
createdAt: serverTimestamp()
});

Çözüm

Firestore, hızlı, ölçeklenebilir ve sunucusuz hizmetler oluşturmak için uygun, güçlü ve gerçek zamanlı bir bulut veritabanıdır.
Bu hizmet şunlar için uygundur:

✅ Web sitesi
✅ Mobil uygulama
✅ İçerik yönetim sistemi
✅ Sohbet uygulamaları
✅ Gerçek zamanlı gösterge panelleri
✅ IoT projeleri
✅ Çevrimiçi mağazalar

Eğer bir ürün oluşturuyorsanız, Anında senkronizasyon, yüksek hız ve yönetilebilir maliyet Evet, Firestore en iyi seçeneklerden biridir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz