Firebase için API anahtarlarını kullanma ve yönetme hakkında bilgi

API anahtarı, Firebase ve Google hizmetleriyle etkileşim kurarken istekleri Firebase projenize yönlendirmek için kullanılan benzersiz bir dizedir. Bu sayfada, API anahtarları hakkında temel bilgilerin yanı sıra Firebase uygulamalarıyla API anahtarlarını kullanma ve yönetmeyle ilgili en iyi uygulamalar açıklanmaktadır.

API anahtarları ve Firebase hakkında genel bilgiler

Firebase için API anahtarları tipik API anahtarlarından farklıdır

API anahtarlarının genel olarak kullanılma şeklinden farklı olarak, Firebase hizmetleri için API anahtarları, arka uç kaynaklarına erişimi kontrol etmek amacıyla kullanılmaz. Bu, yalnızca Firebase Güvenlik Kuralları (hangi son kullanıcıların kaynaklara erişebileceğini kontrol etmek için) ve Firebase Uygulama Kontrolü ile (hangi uygulamaların kaynaklara erişebileceğini kontrol etmek için) yapılabilir.

Genellikle API anahtarlarını hızlı bir şekilde korumanız gerekir (örneğin, bir kasa hizmeti kullanarak veya anahtarları ortam değişkenleri olarak ayarlayarak). Ancak Firebase hizmetleri için API anahtarları, koda veya giriş yapılan yapılandırma dosyalarına eklenebilir.

Firebase hizmetleri için API anahtarları, koda güvenle eklenebilir ancak bunlara yönelik uygun kısıtlamaları ve sınırları inceleyip uygulamanız gerekir.

API anahtarları oluşturma

Firebase projelerinin birçok API anahtarı olabilir ancak her API anahtarı yalnızca tek bir Firebase projesiyle ilişkilendirilebilir.

Firebase uygulamalarınız için Firebase tarafından otomatik olarak oluşturulan API anahtarları

Firebase, aşağıdakilerden birini yaptığınızda projeniz için otomatik olarak API anahtarları oluşturur:

  • Firebase projesi oluştur > Browser key otomatik oluşturuldu
  • Firebase Apple Uygulaması oluştur > iOS key otomatik oluşturuldu
  • Firebase Android Uygulaması oluştur > Android key otomatik oluşturuldu

Ayrıca Google Cloud Console'da kendi API anahtarlarınızı da oluşturabilirsiniz (örneğin, geliştirme veya hata ayıklama için). Bu sayfanın sonraki bölümlerinde, bunun ne zaman önerilebileceği hakkında daha fazla bilgi edinebilirsiniz.

API anahtarlarınızı bulma

Projenizin API anahtarlarını tüm Google Cloud Console'daki API'ler ve Hizmetler > Kimlik Bilgileri panelinde görüntüleyebilir ve yönetebilirsiniz.

Ayrıca, aşağıdaki yerlerde hangi API anahtarının bir Firebase uygulamasıyla otomatik olarak eşlendiğini bulabilirsiniz. Varsayılan olarak, projenizin aynı platformdaki tüm Firebase uygulamaları (Apple, Android ve Web) aynı API anahtarını kullanır.

  • Firebase Apple Apps: Firebase yapılandırma dosyasındaki (GoogleService-Info.plist) otomatik olarak eşleştirilen API anahtarını, API_KEY alanında bulun.

  • Firebase Android Uygulamaları: Otomatik olarak eşleştirilen API anahtarını Firebase yapılandırma dosyasındaki (google-services.json) current_key alanında bulun.

  • Firebase Web Apps: Firebase yapılandırma nesnesindeki apiKey alanında bulunan otomatik eşleşen API anahtarını bulun.

Bir API anahtarını kullanma

API anahtarları, Firebase/Google hizmetleriyle etkileşimde bulunurken Firebase projenizi tanımlamak için kullanılır. Özellikle, kota ve faturalandırma için API isteklerini projenizle ilişkilendirmek amacıyla kullanılırlar. Ayrıca herkese açık verilere erişirken de kullanışlıdırlar.

Örneğin, bir API anahtarının değerini sorgu parametresi olarak bir REST API çağrısına ileterek açıkça kullanabilirsiniz. Bu örnekte, Dynamic Links link kısaltıcı API'sine nasıl istekte bulunabileceğiniz gösterilmektedir:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Uygulamanız, mobil/web istemcisi tarafından sağlanan bir API anahtarı gerektiren bir Firebase API'sine çağrı yaptığında, projenizin API anahtarı için otomatik olarak Firebase yapılandırma dosyasına/nesnesine bakar. Ancak uygulamanız için API anahtarlarını, ortam değişkenleri de dahil olmak üzere farklı bir mekanizma kullanarak sağlayabilirsiniz.

API anahtarlarına uygun kısıtlamaları inceleme ve bunlarla ilgili uygulama ((önerilir))

Firebase hizmetleri için API anahtarını gizli anahtar olarak değerlendirmeniz gerekmese de kısıtlamaları ve sınırları bu bölümde açıklanan şekilde inceleyip uygulamanız gerekir.

Firebase API anahtarlarınız için izin verilenler listesine otomatik olarak eklenen API'leri inceleyin

Firebase, projenizde bir API anahtarı oluşturduğunda bu anahtara otomatik olarak "API kısıtlamaları" ekleriz. Bu izin verilenler listesine eklenen API'ler, istemcinin çağrıyla birlikte API anahtarı sağlamasını gerektiren Firebase ile ilişkili API'lerdir. Firebase hizmetlerinin kullanımı için gereken çoğu API'nin, API anahtarlarınızın izin verilenler listesinde olması gerekmediğini unutmayın.

Firebase, tüm Firebase hizmetleri için gerekli API'leri eklediğinden, API anahtarının izin verilenler listesi, kullanmadığınız ürünlerin API'lerini içerebilir. API'leri izin verilenler listesinden kaldırabilirsiniz ancak Firebase ve kullandığınız Firebase hizmetleri için gerekli olan API'leri kaldırmamaya çok dikkat etmeniz gerekir (her hizmet / ürün için izin verilenler listesinde olması gereken Firebase ile ilişkili API'lerin listesini inceleyin). Aksi takdirde, Firebase hizmetlerine çağrı yaparken hata alırsınız.

Şifre tabanlı kimlik doğrulama kullanıyorsanız kotayı daraltın

Şifre tabanlı Firebase Authentication kullanıyorsanız ve API anahtarınızı ele geçiren bir kişi Firebase Güvenlik Kuralları tarafından korunduğu sürece Firebase projenizin veritabanına veya Cloud Storage verilerine erişemez. Ancak API anahtarınızı kullanarak Firebase'in kimlik doğrulama uç noktalarına erişebilir ve projenizde kimlik doğrulama isteğinde bulunabilirler.

Birilerinin kaba kuvvet saldırısına teşebbüs etmek amacıyla API anahtarını kötüye kullanma olasılığını azaltmak için identitytoolkit.googleapis.com uç noktalarının varsayılan kotasını, uygulamanızın normal trafik beklentilerini yansıtacak şekilde sıkılaştırabilirsiniz. Bu kotayı sıkılaştırırsanız ve uygulamanız aniden kullanıcı kazanırsa kotayı artırana kadar oturum açma hataları alabileceğinizi unutmayın. Projenizin API kotalarını Google Cloud Console'dan değiştirebilirsiniz.

Firebase dışı tüm hizmetler için ayrı, kısıtlanmış API anahtarları kullanın

Firebase hizmetleri için kullanılan API anahtarlarının genellikle gizli kabul edilmesi gerekmez ancak diğer Google Cloud API'leriyle kullandığınız API anahtarlarıyla ilgili olarak bazı ek önlemler almanız gerekir.

Firebase hizmetine / ürününe yönelik olmayan bir Google Cloud API (herhangi bir platformda) kullanıyorsanız bu API'lerle kullanmak için ayrı ve kısıtlanmış API anahtarları oluşturmanızı önemle tavsiye ederiz. Bu, özellikle API faturalandırılabilir bir Google Cloud hizmeti içinse önemlidir.

Örneğin, iOS'te Firebase ML ve Cloud Vision API'lerini kullanıyorsanız yalnızca Cloud Vision API'lerine erişmek için kullanacağınız ayrı API anahtarları oluşturmanız gerekir.

Firebase dışı API'ler için ayrı, kısıtlanmış API anahtarları kullanarak anahtarları gerektiğinde rotasyona sokabilir veya değiştirebilir ve Firebase hizmetlerinin kullanımını kesintiye uğratmadan API anahtarlarına ek kısıtlamalar ekleyebilirsiniz.

Ortama özgü API anahtarları kullan (önerilir)

Hazırlık ve üretim gibi farklı ortamlar için farklı Firebase projeleri oluşturursanız her uygulama örneğinin, karşılık gelen Firebase projesiyle etkileşimde bulunması önemlidir. Örneğin, hazırlık uygulama örneğiniz hiçbir zaman üretim Firebase projenizle konuşmamalıdır. Bu aynı zamanda, hazırlık uygulamanızın, hazırlık Firebase projenizle ilişkili API anahtarlarını kullanması gerektiği anlamına da gelir.

Geliştirmeden hazırlık aşamasına ve üretime kadar kod değişikliklerini teşvik etme sorunlarını azaltmak için, API anahtarlarını kodun kendisine eklemek yerine ortam değişkenleri olarak ayarlayın veya bir yapılandırma dosyasına ekleyin.

Geliştirme için Firebase Local Emulator Suite'i Firebase ML ile birlikte kullanıyorsanız yalnızca hata ayıklama amaçlı bir API anahtarı oluşturmanız ve kullanmanız gerektiğini unutmayın. Bu tür anahtarların oluşturulmasıyla ilgili talimatları Firebase ML belgelerinde bulabilirsiniz.

SSS ve sorun giderme

SSS

Sorun giderme