Firebase
- Okunuşu
- fayırbeys
Kısaca
Firebase, Google'ın web ve mobil uygulamalara veritabanı, kimlik doğrulama, depolama, hosting ve fonksiyonları backend yönetmeden sunan platformudur.
Firebase nedir?
Firebase, 2011'de gerçek zamanlı bir veritabanı girişimi olarak başladı ve 2014'te Google tarafından satın alındı. Zamanla bir backend-as-a-service'e dönüştü: kendi sunucunuzu yazıp çalıştırmak yerine uygulama web, iOS, Android ve Flutter için SDK'ları üzerinden doğrudan Firebase ile konuşur.
Bugünkü ana veritabanı Cloud Firestore'dur; verinin doküman koleksiyonlarında yaşadığı bir NoSQL doküman veritabanı. İstemciler bir sorguya abone olup veri değiştikçe güncellemeleri gerçek zamanlı alabilir; çevrimdışı destek de mobil uygulamaların bağlantı olmadan çalışmaya devam etmesini sağlar. Tek büyük bir JSON ağacı olan ilk Realtime Database de hâlâ sunuluyor.
Veritabanının etrafında e-posta, telefon ve sosyal girişleriyle Firebase Authentication, dosyalar için Cloud Storage, statik siteler için Hosting, olaylarla çalışan sunucu tarafı kod için Cloud Functions ve anlık bildirimler için Cloud Messaging bulunur. İstemciler veriye doğrudan eriştiği için her dokümanı kimin okuyup yazabileceğine Security Rules karar verir.
Sık yapılan bir yanlış, sunucu olmadığı için Firebase'in güvenlik çalışması gerektirmediğini düşünmektir. Kötü yazılmış Security Rules, veri sızıntılarının sık görülen bir nedenidir; çünkü herkes uygulamanızın herkese açık yapılandırmasıyla veritabanını çağırabilir. Maliyetler de her okuma ve yazmayla birlikte artar; bu yüzden verimsiz sorgular pahalıya patlayabilir.
Önemli noktalar
- Firebase, Google'ın web ve mobil uygulamalar için backend platformudur.
- Cloud Firestore, gerçek zamanlı güncellemeleri olan bir NoSQL doküman veritabanıdır.
- Kimlik doğrulama, depolama, hosting, fonksiyonlar ve anlık bildirimler de sunar.
- İstemciler onunla doğrudan konuşur; bu yüzden veriyi Security Rules korur.
- Fiyat okuma ve yazmalara bağlıdır; bu yüzden sorgu tasarımı maliyeti etkiler.
Örnek
import { initializeApp } from "firebase/app";
import { getFirestore, collection, addDoc, query, where, onSnapshot } from "firebase/firestore";
const app = initializeApp({ projectId: "my-app", apiKey: "public-web-key" });
const db = getFirestore(app);
await addDoc(collection(db, "messages"), { room: "general", text: "Hello!", sentAt: Date.now() });
// Real-time: the callback runs again whenever matching documents change
const general = query(collection(db, "messages"), where("room", "==", "general"));
onSnapshot(general, (snapshot) => {
snapshot.docChanges().forEach((change) => console.log(change.type, change.doc.data().text));
});Sık sorulan sorular
Firebase bir veritabanı mı?
Cloud Firestore ve Realtime Database adlı veritabanlarını, kimlik doğrulama, depolama, hosting ve diğer backend servisleriyle birlikte içeren bir platformdur.
Firestore ile Realtime Database arasındaki fark nedir?
Realtime Database her şeyi büyük tek bir JSON ağacı olarak saklar ve gecikmesi çok düşüktür. Firestore ise veriyi koleksiyonlara ve dokümanlara ayırır, daha zengin sorguları destekler, daha fazla ölçeklenir ve çoğu yeni uygulama için önerilen seçimdir.
Firebase API anahtarı gizli mi?
Hayır. API anahtarı dahil web yapılandırması herkese açık olacak şekilde tasarlanmıştır ve yalnızca projenizi tanımlar. Erişimi anahtarı gizlemek değil, Security Rules ve App Check denetler.
Sık karşılaştırılanlar
İlgili sayfalar
- NoSQLVeritabanları, s. 21NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer çifti, geniş sütun ya da çizge gibi başka modellerde saklayan veritabanı ailesidir.
- Doküman VeritabanıVeritabanları, s. 9Doküman veritabanı, kayıtları genellikle JSON benzeri, kendi içinde bütün dokümanlar olarak saklayan, alanları kayıttan kayda değişebilen NoSQL veritabanıdır.
- ServerlessDevOps ve Bulut, s. 46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
- Kimlik DoğrulamaGüvenlik, s. 19Kimlik doğrulama, bir kullanıcının, cihazın veya servisin gerçekten iddia ettiği kişi olduğunu, örneğin parola ya da passkey kontrol ederek doğrulama işlemidir.
- SupabaseVeritabanları, s. 34Supabase, veritabanı, kimlik doğrulama, depolama, gerçek zamanlı güncelleme ve anında API sunan, PostgreSQL tabanlı açık kaynaklı bir backend platformudur.
- WebSocketWeb Geliştirme, s. 61WebSocket, tarayıcı ile sunucu arasında tek bir bağlantıyı açık tutarak her iki tarafın istediği an birbirine anında mesaj göndermesini sağlayan protokoldür.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin