Önemli Noktalar
Firebase, uygulama geliştirme için hazır araçlar sağlayan bir Backend-as-a-Service (BaaS) platformudur. Firebase, geliştiricileri sıfırdan sunucu altyapısı oluşturma zorunluluğundan kurtarır — analitik, veritabanları, kimlik doğrulama, push bildirimleri ve çok daha fazlası SDK aracılığıyla hemen kullanılabilir.
Google, Firebase'i 2014 yılında 100 milyon dolara satın aldı ve Google Cloud Platform ile entegre etti. Firebase, 20'den fazla ürün sunar ve bunlar proje ihtiyaçlarına göre birleştirilebilir. Çoğu hizmetin cömert bir ücretsiz limiti (Spark Plan) vardır ve büyüme için kullanım başına ödeme planı (Blaze Plan) mevcuttur.
Firebase entegrasyonu, Firebase Console'da bir proje oluşturup yapılandırma dosyası (iOS için GoogleService-Info.plist, Android için google-services.json) eklemekle başlar. Firebase, iOS, Android, Flutter, React Native, Unity ve web uygulamalarını destekler, bu da onu her platform için evrensel bir çözüm haline getirir.
Firebase Analytics, kullanıcı davranışı hakkında veri toplayan ücretsiz bir analitik aracıdır. Firebase Analytics, tüm platformun çekirdeğidir — analitik verileri, hedefleme ve kişiselleştirme için diğer tüm Firebase hizmetleri tarafından kullanılır.
Firebase Crashlytics, uygulama çökmelerini izlemek için en popüler araçtır. Crashlytics, her uygulama çökmesinde otomatik olarak stack trace'leri, günlükleri ve cihaz verilerini toplar. Raporlar hata türüne göre gruplandırılır ve en kritik sorunların hızlıca belirlenmesini sağlar.
Crashlytics, özel günlükleri, anahtarları ve ölümcül olmayan istisnaları destekler. Ölümcül olmayan istisnalar, uygulamayı çökertmeden işlenmiş hataları izlemeye olanak tanır — örneğin, başarısız bir API isteği veya iş mantığındaki bir istisna.
Firebase Performance, uygulama performansını izlemek için bir araçtır. Performance, başlatma süresini, ağ gecikmesini, ekran oluşturmayı ve HTTP isteklerini izler. Uygulamayı yavaşlatan ve kullanıcı deneyimini bozan darboğazları belirler.
Firebase Analytics'i Crashlytics ile entegre etmek, yalnızca neyin çöktüğünü değil, aynı zamanda çökmeden önce kullanıcının hangi eylemlerde bulunduğunu da görme olanağı sağlar. IT Sectr, üretimde hızlı hata teşhisi için bu kombinasyonu kullanır — tespitten düzeltmeye kadar geçen süre 3–4 kat azalır.
Firebase, iki NoSQL veritabanı ve dosyalar için bulut depolama sunar. Firestore ve Realtime Database arasındaki seçim kullanım senaryosuna bağlıdır — her iki veritabanı da verileri gerçek zamanlı olarak senkronize eder ancak farklı mimarilere sahiptir.
| Özellik | Cloud Firestore | Realtime Database |
|---|---|---|
| Veri modeli | Koleksiyonlar ve belgeler (JSON nesneleri) | Tek büyük JSON ağacı |
| Sorgular | Bileşik, dizinler, sıralama, filtreleme | Basit, tek düğümden sıralama |
| Ölçekleme | Otomatik, çok bölgeli | Tek bölge, bant genişliği sınırları |
| Fiyatlandırma | Okuma/yazma/silme hacmi | Trafik ve depolama hacmi |
| Çevrimdışı mod | Desteklenir (disk önbelleği) | Desteklenir (bellek önbelleği) |
| En iyi kullanım | Sohbetler, sosyal ağlar, karmaşık sorgular | Sohbetler, oyunlar, basit senkronizasyon |
Cloud Storage, dosyalar (görseller, video, ses) için bir depolama alanıdır. Firebase Storage, otomatik olarak petabaytlara kadar ölçeklenir ve bağlantı kesintisi durumunda devam ettirme özelliğiyle güvenilir yükleme sağlar. Güvenli erişim için Firebase Auth ile entegre olur.
Esnek sorguları ve ölçeklenebilirliği nedeniyle yeni projeler için Firestore önerilir. Realtime Database, az miktarda veri içeren basit sohbetler ve oyunlar için iyi bir seçim olmaya devam eder. IT Sectr genellikle Firestore'u birincil veritabanı olarak ve Realtime Database'i yalnızca gerçek zamanlı işbirlikleri için kullanır.
Firebase Authentication, kullanıcı kimlik doğrulaması için hazır bir çözümdür. Firebase Auth, e-posta/parola, Google, Apple, Facebook, Twitter, GitHub, telefon kimlik doğrulaması ve anonim girişi destekler. Kimlik doğrulama sürecinin tamamı SDK aracılığıyla istemci tarafında uygulanır.
Google Sign-In, en popüler kimlik doğrulama sağlayıcılarından biridir. Google Sign-In entegrasyonu, Firebase Console üzerinden 15–30 dakika sürer ve arka uç geliştirme gerektirmez. Kullanıcılar Google hesaplarını kullanarak tek tıkla giriş yapar.
Firebase Auth, Admin SDK aracılığıyla arka uç işlevleri de sağlar. Sunucuda kullanıcı oluşturabilir, profilleri güncelleyebilir, oturumları yönetebilir ve ID token'larını doğrulayabilirsiniz. Cloud Functions ile entegrasyon, özel kimlik doğrulama senaryoları oluşturmayı sağlar.
Security Rules — veritabanları ve depolama için Firebase'in güvenlik mekanizması. Erişim kuralları bildirimsel olarak tanımlanır ve her istekte kontrol edilir. Örneğin: userId'nin kimliği doğrulanmış kullanıcıya eşit olması durumunda belge okumaya izin ver.
Firestore için basit bir Security Rule örneği:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth.uid == resource.data.authorId;
}
}
}
Firebase Cloud Messaging (FCM), push bildirimleri göndermek için bir hizmettir. FCM, günlük 500 milyar mesaja kadar işlem yapar ve iOS, Android ve Web'i destekler. Mesajlar, notification messages (otomatik görüntüleme) ve data messages (uygulama içi işleme) olarak ikiye ayrılır.
Firebase Remote Config, yeni bir sürüm yayınlamadan uygulama davranışını değiştirmenizi sağlar. Remote Config, A/B testleri, özellikleri açma/kapama, arayüz özelleştirme ve dinamik parametre değişiklikleri (örneğin, reklam sıklığı, ödeme duvarı metni) için kullanılır.
Firebase A/B Testing, deneyler yapmak için bir araçtır. Farklı parametrelerle uygulamanın iki sürümünü oluşturun ve metrikler üzerindeki etkiyi ölçün (dönüşüm, tutma, gelir). Testler otomatik olarak istatistiksel anlamlılığı hesaplar ve kazananı belirler.
Firebase Dynamic Links, kullanıcıyı uygulamada doğru yere götüren akıllı bağlantılardır. Dynamic Links, uygulama yüklü olmasa bile çalışır — bu durumda mağaza sayfasına giderler ve yüklemeden sonra bağlamı geri yükleyerek hedef ekrana yönlendirirler.
IT Sectr, karşılama ekranından ödeme akışına kadar tüm önemli senaryoları optimize etmek için Remote Config + A/B Testing kombinasyonunu kullanır. Remote Config parametreleri, Firebase Console üzerinden gerçek zamanlı olarak değiştirilebilir — bu, geleneksel sürüm döngülerinde bulunmayan esneklik sağlar.
Firebase Test Lab, otomatik uygulama testi için bulut tabanlı bir çözümdür. Test Lab, testlerinizi gerçek Google cihazlarında çalıştırır çeşitli yapılandırmalarda (farklı işletim sistemi sürümleri, ekran çözünürlükleri, diller). Espresso (Android), XCUITest (iOS) ve Robo testlerini destekler.
Firebase App Distribution, uygulamaların beta sürümlerini dağıtmak için bir platformdur. App Distribution, Android için TestFlight'ın yerini alır ve iOS için onu tamamlar. APK/AAB yükleyebilir ve Crashlytics entegrasyonu aracılığıyla test kullanıcılarından geri bildirim alabilirsiniz.
Test Lab ve App Distribution kombinasyonu, geliştirmenin tüm aşamalarında kaliteyi sağlar: gerçek cihazlarda otomatik testlerden gerçek kullanıcılarla beta testine kadar. CI/CD (GitHub Actions, Bitrise) ile entegrasyon, süreci tamamen otomatik hale getirir.
| Hizmet | Amaç | Ücretsiz limit | iOS | Android | Web |
|---|---|---|---|---|---|
| Analytics | Kullanıcı etkinliklerini toplama ve analiz etme | Sınırsız | + | + | + |
| Crashlytics | Çökme raporlaması | Sınırsız | + | + | - |
| Firestore | NoSQL veritabanı | 1 GB depolama | + | + | + |
| Realtime DB | Gerçek zamanlı veritabanı | 1 GB depolama | + | + | + |
| Auth | Kullanıcı kimlik doğrulaması | Sınırsız | + | + | + |
| Cloud Messaging | Push bildirimleri | Sınırsız | + | + | + |
| Remote Config | Parametre yönetimi | Sınırsız | + | + | + |
| Performance | Performans izleme | Sınırsız | + | + | + |
| Test Lab | Bulut testi | 10 test/gün | + | + | - |
| App Distribution | Beta sürüm dağıtımı | Sınırsız | + | + | - |
| Cloud Functions | Talep üzerine sunucu kodu | Ayda 2 milyon çağrı | + | + | + |
Sıkça Sorulan Sorular
Firebase'in cömert limitlere sahip ücretsiz Spark Planı vardır — analitik, çökme raporlaması ve kimlik doğrulama ücretsiz ve sınırsızdır. Blaze Plan (kullanım başına ödeme) limitler aşıldığında gereklidir — örneğin, Firestore'da 1 GB'den fazla veya 2 milyondan fazla Cloud Functions çağrısı. Çoğu girişim ilk 1–2 yılda ücretsiz limitleri aşmaz.
Çoğu yeni proje için Firestore önerilir. Firestore daha iyi ölçeklenebilirlik, daha zengin sorgular ve çok bölgeli çoğaltma sunar. Realtime Database yalnızca basit gerçek zamanlı senaryolar (az miktarda veri içeren sohbetler, gerçek zamanlı oyunlar) için seçilmelidir.
Evet, Firebase açık protokoller kullanır ve veriler dışa aktarılabilir. Firestore'un BigQuery ve Google Cloud Storage'a yönetilen dışa aktarması vardır. Parola karmalarını dışa aktararak kimlik doğrulama taşınabilir. Cloud Functions, herhangi bir arka uç framework'ünde kolayca yeniden yazılabilir.
Firebase çok katmanlı koruma kullanır: aktarım düzeyinde (TLS) ve depolama düzeyinde (AES-256) şifreleme. Security Rules, bildirimsel erişim kontrolü sağlar. Firebase ayrıca SOC 1/2/3, ISO 27001 ve GDPR standartlarına uygundur.
Firebase, Google hizmetlerinin engellenmesi nedeniyle Çin'de sınırlı olarak çalışır. Çin pazarı için yerel alternatifler kullanılmalıdır — örneğin, FCM yerine Alibaba Cloud Push veya Firebase yerine LeanCloud. Firebase Analytics ve Crashlytics de VPN olmadan kullanılamaz.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.