Bu belgede, bir Firebase uygulamasını üretim ortamında kullanıma sunmadan önce yapılması gerekenler ve dikkat edilmesi gereken noktalarla ilgili bir kontrol listesi yer almaktadır.
Yayınlamayla ilgili genel en iyi uygulamalar
Üretim ortamına dağıtmadan önce tüm değişikliklerinizi Firebase Local Emulator Suite (desteklenen ürünler için) test ettiğinizden emin olun. Kapsamlı testler, maliyetli hataları önlemeye yardımcı olabilir.
Destekleyen her hizmet için Firebase App Check uygulamaya başlayın. App Check, yalnızca gerçek uygulamalarınızın arka uç hizmetlerinize ve kaynaklarınıza erişebilmesini sağlar.
Firebase'in genel güvenlik kontrol listesini inceleyin.
Uygulamanızda yeni özellikleri ve güncellemeleri güvenli ve kademeli bir şekilde yayınlamak için Firebase Remote Config kullanıma sunma özelliğini kullanın.
Henüz yapmadıysanız Firebase Crashlytics oluşturmayı düşünebilirsiniz. Bu, uygulamanızın kalitesini düşüren kararlılık sorunlarını izlemenize, önceliklendirmenize ve düzeltmenize yardımcı olan hafif, gerçek zamanlı bir kilitlenme raporlayıcıdır.
Fiyatlandırma planı sınırlarınızı öğrenme ve bütçe uyarıları ayarlama
Üretime geçtikten sonra, özellikle ücretsiz Spark planını kullanıyorsanız kullanım sınırlarına ve kotalara ulaşmadığınızdan emin olun. Kullandıkça öde Blaze fiyatlandırma planına geçmeyi düşünebilirsiniz.
Projeniz için bütçe uyarıları oluşturun.
Bütçe uyarılarının bütçe sınırları olmadığını unutmayın. Uygulamanızda veya projenizde işlem yapabilmeniz için yapılandırılmış eşiğinize yaklaştığınızda veya bu eşiği aştığınızda uyarılar size bildirim gönderir.
Uyarılar karşısında faturalandırmayı devre dışı bırakacak işlevler gibi gelişmiş uyarılar ve işlemler ayarlamayı düşünebilirsiniz.
Firebase AI Logic, Firebase App Hosting, Cloud Functions for Firebase ve Firebase Extensions kullanıyorsanız projeniz ilgili hizmet için belirlenen bütçeye ulaştığında geçerli hizmeti duraklatacak harcama sınırları belirlemenizi önemle tavsiye ederiz.
Kullanımınızı ürüne özel kontrol panellerinden veya Firebase konsolundaki merkezi Kullanım ve faturalandırma kontrol panelinden izleyin.
Firebase projelerinizin ve uygulamalarınızın en iyi uygulamalara uygun olduğundan emin olun.
İster tek bir geliştirici ister kurumsal düzeyde bir ekip olun, Firebase projelerinizin, uygulamalarınızın ve kaynaklarınızın korunmasını, güvenliğini ve ekibinizdeki değişikliklerle birlikte gelişebilmesini sağlamanız önemlidir.
Firebase projesinin, Firebase hizmetleri ve yapılandırmaları etkinleştirilmiş bir Google Cloud projesi olduğunu unutmayın. Bu nedenle, Google Cloud'un önerdiği birçok en iyi uygulama Firebase için de geçerlidir.
Geliştirme, test ve üretim için farklı Firebase projeleri kullanın.
Üretim uygulamanızla ilişkili projeye beklenmedik erişimi sınırlamaya çalışın. Geliştirme iş akışlarını ayarlama hakkında daha fazla bilgi edinin.
Önemli projelerinizi, özellikle de üretim uygulamanızla ilişkili projeyi koruyun.
Yanlışlıkla projenin silinmesini önlemek için proje ipoteklerini kullanın.
Üretim ortamınızı tanımlamayı kolaylaştırmak için Firebase konsolunda "Prod" etiketi uygulayın.
Henüz yapmadıysanız bir Google Cloud kuruluşu oluşturup Firebase projelerinizi bu kuruluşa ekleyebilirsiniz.
Firebase projelerinize birden fazla sahip ekleyin. Bu özellikle projeniz bir Google Cloud kuruluşunda değilse önemlidir. Firebase projesi için ne zaman ve nasıl sahip atanacağı hakkında daha fazla bilgi edinin.
Proje üyelerini (diğer adıyla "sorumlular") tek tek eklemek yerine Google grupları olarak ekleyin.
Grupları kullanmak, ekip üyelerine toplu olarak rol atamayı ve Firebase projenize kimlerin erişebileceğini yönetmeyi kolaylaştırır. Bu, özellikle ekip üyelerinin değiştiği veya ayrıldığı durumlarda faydalıdır.
Her proje üyesine (diğer adıyla "asıl") Firebase projelerinize ve kaynaklarınıza uygun erişim düzeyini verin. Daha fazla bilgi için Firebase IAM ile proje erişimini yönetme başlıklı makaleyi inceleyin.
Geçerli her proje üyesinin (diğer adıyla "sorumlu"), belirli ürünler veya proje durumu (ör. faturalandırma planı değişiklikleri ya da kota sınırları) hakkında uyarı almak için tercihlerini ayarladığından emin olun. Daha fazla bilgi için Firebase uyarılarını alma başlıklı makaleyi inceleyin.
Belirli veya ek proje üyelerinin bildirim almasını istiyorsanız isteğe bağlı olarak projenizin "önemli kişilerini" özelleştirebilirsiniz. Bu özellik, özellikle faturalandırma, yasal ve ürün değişiklikleriyle ilgili bildirimlerin yalnızca proje sahibine değil, diğer kullanıcılara da gönderilmesini sağlamak için kullanışlıdır.
Firebase API anahtarlarınızı yalnızca anahtarın API izin verilenler listesinde olması gereken API'lerle kısıtlayın. Ayrıca, Firebase'in güvenlik kontrol listesindeki API anahtarlarıyla ilgili bilgilere de göz atın.
Uygulamanızda kullanılan belirli hizmetleri hazırlama
Uygulamanızda kullanılan her ürün ve hizmetin üretimde kullanıldığında dikkat edilmesi gereken özel noktaları olabilir.
Firebase AI Logic
Google Analytics
Uygulamanızın kullanıma sunulmasıyla birlikte analiz verilerini toplamaya başlamak için Google Analytics için kitle koşullarını tanımlayın.
Verilerinizi BigQuery SQL ile analiz edebilmek veya kendi araçlarınızla kullanmak üzere dışa aktarabilmek için Google Analytics verilerinin BigQuery platformuna aktarılmasını etkinleştirebilirsiniz.
Kullanıcı özelliklerini, uygulamanızın tüm yaşam döngüsüyle alakalı olacak bilgilerle sınırlayın. Oluşturabileceğiniz özellik sayısı sınırlıdır ve bunlar arşivlenemez.
Google Analytics mülk ve hesaplarınız için Google Analytics rolün ayarlarını inceleyin. Bu izinler, Firebase projesi IAM izinlerinden ve rollerinden ayrı olarak yönetilir.
Firebase konsolunun proje ayarlarında uygulama mağazası kimliğinizin ve gerekirse ekip kimliğinizin doğru olduğundan emin olun.
App Check
Firebase konsolunun proje ayarlarında ekip kimliğinizin doğru olduğundan emin olun.
Henüz yapmadıysanız Firebase App Check'ı zorunlu kılmaya başlayın. Bu özellik, desteklenen tüm hizmetlerde kullanılabilir. App Check, yalnızca gerçek uygulamalarınızın arka uç hizmetlerinize ve kaynaklarınıza erişebilmesini sağlar.
Authentication
Kullanmadığınız tüm sağlayıcıları (özellikle anonim kimlik doğrulama) devre dışı bırakın.
Uygulamanız Google ile oturum açma özelliğini kullanıyorsa OAuth kullanıcı rızası ekranınızı kişiselleştirin.
Authentication e-posta gönderme hizmeti için alanınızı ve göndereninizi özelleştirin.
Identity Platform SMS doğrulama hizmetlerini kullanıyorsanız Firebase App Check'ı zorunlu kılmaya başlayın ve uygulamanızı SMS kötüye kullanımından korumak için SMS bölge politikası yapılandırın.
Apple platformlarında sık karşılaşılan Authentication hatalar için hata işleme özelliğini uygulayın.
Firebase konsolunun Proje ayarları bölümünde uygulamanızın imzalama sertifikası için bir sürüm SHA-1 karma değeri ekleyin. Uygulamanızda telefon numarasıyla oturum açma veya Google ile oturum açma (OAuth istemci şartı vardır) özelliği kullanılıyorsa SHA-1 karma değeri gerekir.
Yetkisiz kullanımı önlemek için alanlarınızda erişim denetimi ekleyin. Özellikle, Firebase konsolunun Authentication bölümünde üretim alanınıza erişime izin verin (Firebase Security Rules kullanan ürünler kullanıyorsanız bu özellikle önemlidir).
Cloud Firestore
İstenmeyen veri erişimini önlemek için Cloud Firestore Security Rules yapılandırın.
Yayınlanan derlemenizde kod daraltma için ProGuard kullanın. ProGuard olmadan Cloud Firestore SDK'sı ve bağımlılıkları APK boyutunuzu artırabilir.
Cloud Messaging
Verilerinizi BigQuery SQL ile analiz edebilmek veya verileri kendi araçlarınızla kullanmak için dışa aktarabilmek üzere Cloud Messaging verilerinin BigQuery'e aktarılmasını etkinleştirmeyi düşünün.
Cloud Messaging için APNS kimlik doğrulama anahtarınızı Firebase konsolunda Apple uygulamalarına yükleyin. APNS sertifikaları kullanıyorsanız üretim APNS sertifikanızın yüklendiğinden emin olun.
Cloud Messaging için bulut denetleme günlüğünü etkinleştirmeyi düşünün. Bu sayede, Google Cloud kaynaklarınızdaki yönetim ve erişim etkinliklerini kaydeden denetleme günlükleri oluşturabilirsiniz.
Yeni özelliklerden ve güvenlik güncellemelerinden haberdar olmak için SDK'yı düzenli olarak en yeni sürüme güncellediğinizden emin olun.
Uygulama sunucunuzda Cloud Messaging kayıt jetonu yönetimiyle ilgili en iyi uygulamaları izleyin. Geçerli teslimat raporlaması ve etkili mesaj hedefleme için kayıt jetonlarını zaman damgasıyla kaydedin, değişikliklerde güncelleyin ve eski jetonları (bir aydan uzun süredir etkin olmayan) kaldırın.
Büyük ölçekte Cloud Messaging mesaj gönderirken en iyi uygulamalardan yararlanın. HTTP v1 API veya Firebase Admin SDK kullanın, yeniden denemeler için gecikmeli eksponansiyel geri yükleme uygulayın ve trafik artışları ile sıklık sınırlarından kaçınmak için
Retry-Afterbaşlıklarına uyun.
Cloud Storage
- İstem dışı veri erişimini önlemek için Cloud Storage Security Rules yapılandırın.
Crashlytics
Geçerli her proje üyesinin (diğer adıyla "sorumlu"), Crashlytics veya proje durumu (ör. faturalandırma planı değişiklikleri ya da kota sınırları) hakkında uyarılar almak için tercihlerini ayarladığından emin olun. Daha fazla bilgi için Firebase uyarılarını alma başlıklı makaleyi inceleyin.
Verilerinizi BigQuery SQL ile analiz edebilmek veya kendi araçlarınızla kullanmak üzere dışa aktarabilmek için Crashlytics verilerinin BigQuery platformuna aktarılmasını etkinleştirebilirsiniz.
(yalnızca yerel Android ve iOS) Bir kilitlenmenin nedenini anlamanız ve bu konuda ne yapmanız gerektiğini belirlemeniz için gereken süreyi hızlandırmaya yardımcı olması amacıyla Crashlytics'da Yapay Zeka Desteği'ni etkinleştirmeyi düşünebilirsiniz.
Yayınlanan derlemeler için dSYM dosyasını yükleyerek Crashlytics'da kullanın. Xcode'un dSYM'leri otomatik olarak işleyebildiğinden ve dosyaları yükleyebildiğinden emin olun.
Crashlytics uygulamasında kullanılmak üzere yayınlanan derlemeler için ProGuard eşleme dosyası yükleyin. Yükleme işlemi Firebase CLI kullanılarak yapılabilir.
Android uygulamanızın durumu hakkında daha ayrıntılı bilgi edinmek için Firebase'i Google Play uygulamasına bağlayın. Örneğin, uygulamanızın kilitlenme raporlarını Google Play kanalına göre filtreleyerek kontrol panelinizi belirli derlemelere daha iyi odaklayabilirsiniz.
Android'i hedefleyen ve IL2CPP kullanan derlemeler için, kod veya yapılandırma değişiklikleri olup olmadığına bakılmaksızın, sembollerini kullanmak istediğiniz her derleme çalıştırması için yerel sembolleri yüklediğinizden emin olun.
Dynamic Links
- Dynamic Links desteği sonlandırıldığından hizmetten başka bir hizmete geçmenizi öneririz. Desteği sonlandırmayla ilgili SSS bölümünden daha fazla bilgi edinebilirsiniz.
Firebase ML
Firebase ML Apple uygulamanızı üretime hazırlama başlıklı makaleyi inceleyin.
Firebase ML Android uygulamanızı üretime hazırlama başlıklı makaleyi inceleyin.
Performance Monitoring
Geçerli her proje üyesinin (diğer adıyla "sorumlu"), Performance Monitoring veya proje durumu (ör. faturalandırma planı değişiklikleri ya da kota sınırları) hakkında uyarı almak için tercihlerini ayarladığından emin olun. Daha fazla bilgi için Firebase uyarıları alma başlıklı makaleyi inceleyin.
Verilerinizi BigQuery SQL ile analiz edebilmek veya kendi araçlarınızla kullanmak üzere dışa aktarabilmek için Performance Monitoring verilerinin BigQuery platformuna aktarılmasını etkinleştirebilirsiniz.
Realtime Database
İstenmeyen veri erişimini önlemek için Realtime Database Security Rules yapılandırın.
Ölçeklendirmeye hazır olduğunuzdan emin olun. Realtime Database, çoğu uygulama için yeterince büyük bir varsayılan kotaya sahiptir ancak bazı uygulamalar için ek kapasite gerekebilir.
Proguard kurallarınızı Realtime Database ile çalışacak şekilde yapılandırın.
Remote Config
Deneysel Remote Config kurallarının, sürüm kullanıcılarınızı etkilemediğinden ve uygulamanızda uygun sunucu ve uygulama içi varsayılanların dağıtıldığından emin olun.
Eski sürümler uyumsuz hale gelir veya kullanımdan kaldırılırsa kullanıcıların uygulamalarını güncellemelerini istemek veya zorunlu kılmak için Remote Config uygulamasında
minimum_versionparametresi yapılandırmayı düşünebilirsiniz.