Firebase için API anahtarları hakkında bilgi edinme ve bunları yönetme
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
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ıyla ilgili temel bilgilerin yanı sıra Firebase uygulamalarında API anahtarlarını kullanma ve yönetmeyle ilgili en iyi uygulamalar açıklanmaktadır.
Google Cloud adresinden "Google Cloud projeniz için herkese açık bir Google API anahtarı" hakkında bir e-posta aldıysanız ve e-postada listelenen API anahtarı Firebase API anahtarınızsa API anahtarının aşağıdaki şartları karşıladığından emin olun. Böylece kodunuza veya yapılandırma dosyalarınıza güvenle dahil edebilirsiniz. Google Cloud konsolunun API'ler ve Hizmetler > Kimlik Bilgileri sayfasında aşağıdakileri doğrulayabilirsiniz.
Firebase uygulamanız için ve yalnızca Firebase hizmetlerinde kullandığınız API anahtarıdır. Bu tuşlar genellikle
Browser key (auto created by Firebase),
Android key (auto created by Firebase) veya
iOS key (auto created by Firebase) olarak adlandırılır.
Bu sayfanın geri kalanında, Firebase için API anahtarları hakkında ayrıntılı bilgiler ve bu anahtarlarla ilgili SSS listesi yer alı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 tipik kullanım şeklinin aksine, Firebase hizmetleri için API anahtarları arka uç kaynaklarına erişimi kontrol etmek için kullanılmaz. Bu işlem yalnızca Firebase Security Rules (hangi son kullanıcıların kaynaklara erişebileceğini kontrol etmek için) ve Firebase App Check (hangi uygulamaların kaynaklara erişebileceğini kontrol etmek için) ile yapılabilir.
Genellikle API anahtarlarını titizlikle korumanız gerekir (ör. bir kasa hizmeti kullanarak veya anahtarları ortam değişkenleri olarak ayarlayarak). Ancak Firebase hizmetleri için API anahtarlarını koda veya kontrol edilen yapılandırma dosyalarına ekleyebilirsiniz.
Realtime Database, Cloud Firestore ve
Cloud StorageverileriniziFirebase Security Rules kullanarak
API anahtarı oluşturma
Bir Firebase projesinin birçok API anahtarı olabilir ancak her API anahtarı yalnızca tek bir Firebase projesiyle ilişkilendirilebilir.
Aşağıdakilerden herhangi birini yaptığınızda Firebase, projeniz için otomatik olarak API anahtarları oluşturur:
Firebase projesi oluşturma > Browser key otomatik olarak oluşturuldu
Firebase Apple uygulaması oluşturma > iOS key otomatik olarak oluşturuldu
Firebase Android uygulaması oluşturma > Android key otomatik olarak oluşturuldu
Google Cloud konsolunda kendi API anahtarlarınızı da oluşturabilirsiniz. Örneğin, geliştirme veya hata ayıklama için. Bu önerinin ne zaman gösterilebileceği hakkında daha fazla bilgiyi bu sayfanın ilerleyen bölümlerinde bulabilirsiniz.
API anahtarlarınızı bulma
Projenizin tüm API anahtarlarını Google Cloud konsolunun API'ler ve Hizmetler > Kimlik Bilgileri sayfasında görüntüleyip yönetebilirsiniz.
Firebase Apple Uygulamaları: Otomatik olarak eşleşen API anahtarını Firebase yapılandırma dosyasında (GoogleService-Info.plist) API_KEY alanında bulabilirsiniz.
Firebase Android Uygulamaları: Otomatik olarak eşleşen API anahtarını Firebase yapılandırma dosyasında (google-services.json) current_key alanında bulabilirsiniz.
Firebase Web Uygulamaları: Firebase yapılandırma nesnesinin apiKey alanında otomatik olarak eşleşen API anahtarını bulun.
Bir API anahtarını kullanma
Firebase API anahtarları, Firebase veya Google hizmetleriyle etkileşim kurarken Firebase projenizi tanımlamak için kullanılır. Özellikle, API isteklerini kota ve faturalandırma için projenizle ilişkilendirmek amacıyla kullanılırlar. Ayrıca herkese açık verilere
erişmek için de kullanışlıdır.
Geliştiricilerin ve kullanım alanlarının büyük çoğunluğunda bu API anahtarlarıyla doğrudan etkileşim kurmazsınız. Bunun yerine, uygulamanız mobil veya web istemcisi tarafından sağlanan bir API anahtarı gerektiren bir Firebase API'sine çağrı yaptığında uygulamanız, uygulamanızın Firebase yapılandırmasındaotomatik olarak bir API anahtarı arar. Bu yapılandırma, uygulamanızı Firebase'e bağladığınızda uygulamanızın kod tabanına eklenmiştir.
Uygulamanızın API anahtarını, Firebase seçenekleri veya ortam değişkenleri gibi farklı bir mekanizma kullanarak uygulamanızda sağlayabileceğinizi unutmayın.
Ayrıca, Firebase hizmetlerine yönelik REST API'lerin birkaçı için API anahtarının değerini çağrıya sorgu parametresi olarak açıkça iletmeniz gerekebilir.
Bu örnekte, Firebase Authentication API'yi kullanarak nasıl istek gönderebileceğiniz gösterilmektedir:
API anahtarlarını inceleme ve uygun kısıtlamaları uygulama
Projenizdeki tüm API anahtarlarının bu bölümde açıklandığı şekilde uygun API kısıtlamalarına ve sınırlarına sahip olduğundan emin olmanız çok önemlidir.
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 bir API anahtarı sağlamasını gerektiren Firebase ile ilgili API'lerdir. Firebase hizmetlerini kullanmak için gereken API'lerin çoğunun API anahtarlarınızın izin verilenler listesinde olması gerekmez.
Firebase, tüm Firebase hizmetleri için gerekli API'leri eklediğinden, bir 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 ilgili API'lerin listesine bakın). Aksi takdirde, Firebase hizmetlerine çağrı yaparken hata alırsınız.
Şifre tabanlı Firebase Authentication kullanıyorsanız ve birisi API anahtarınızı ele geçirirse Firebase projenizin veritabanına veya Cloud Storage verilerine erişemez. Bu veriler Firebase Security Rules tarafından korunduğu sürece erişim mümkün değildir. Ancak API anahtarınızı kullanarak Firebase'in kimlik doğrulama uç noktalarına erişebilir ve projeniz için kimlik doğrulama istekleri gönderebilirler.
Bir kullanıcının kaba kuvvet saldırısı gerçekleştirmek için API anahtarını kötüye kullanma olasılığını azaltmak amacıyla identitytoolkit.googleapis.com uç noktalarının varsayılan kotasını uygulamanızın normal trafik beklentilerini yansıtacak şekilde daraltabilirsiniz. Bu kotayı daraltı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 konsolunda değiştirebilirsiniz.
Firebase dışındaki hizmetler için ayrı, kısıtlanmış API anahtarları kullanın.
Firebase hizmetleri için kullanılan API anahtarlarının genellikle gizli tutulması gerekmese de diğer Google Cloud API'leriyle kullandığınız API anahtarları için bazı ek önlemler almanız gerekir.
Firebase hizmeti/ürünü için olmayan bir Google Cloud API'si (herhangi bir platformda) kullanıyorsanız bu API'lerle kullanılmak üzere ayrı, kısıtlanmış API anahtarları oluşturmanızı önemle tavsiye ederiz. API, ücretli bir Google Cloud hizmeti için kullanılıyorsa bu durum son derece önemlidir. Özellikle, herkese açık bir API anahtarı veya diğer hizmetler için kullanılan bir anahtarın izin verilenler listesine Gemini Developer API eklemeyin.
Firebase dışı API'ler için ayrı ve kısıtlanmış API anahtarları kullanarak, Firebase hizmetlerini kullanımınızı kesintiye uğratmadan gerektiğinde anahtarları değiştirebilir veya yenileyebilir ve API anahtarlarına ek kısıtlamalar ekleyebilirsiniz.
API'ye özel anahtar oluşturma talimatlarını görüntüleyin.
Bu talimatlarda, Super Service API adlı sahte bir API için ayrı ve kısıtlı bir API anahtarının nasıl oluşturulacağı açıklanmaktadır.
1. adım: Mevcut API anahtarlarınızı Super Service API erişimine izin vermeyecek şekilde yapılandırın
Google Cloud konsolunda API'ler ve Hizmetler > Kimlik Bilgileri sayfasına gidin.
İstenirse projenizi seçin.
Listedeki her API anahtarı için düzenleme görünümünü açın.
API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin, ardından API anahtarının erişmesini istediğiniz tüm API'leri listeye ekleyin. Ayrı bir API anahtarı oluşturduğunuz API'yi (bu örnekte Super Service API) eklemediğinizden emin olun.
Bir API anahtarı için API kısıtlamalarını yapılandırdığınızda anahtarın erişebileceği API'leri açıkça belirtmiş olursunuz. **Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçeneği belirlendiğinde, proje için etkinleştirilen tüm API'lere erişmek üzere bir API anahtarı kullanılabilir.**
Mevcut API anahtarlarınız artık Super Service API erişimine izin vermeyecek ancak her anahtar, API kısıtlamaları listesine eklediğiniz API'ler için çalışmaya devam edecek.
2. adım: Super Service API erişimi için yeni bir API anahtarı oluşturun ve kullanın
API'ler ve Hizmetler > Kimlik Bilgileri sayfasına geri dönün.
Firebase projenizin hâlâ seçili olduğundan emin olun.
Kimlik bilgileri oluştur > API anahtarı'nı tıklayın. Yeni API anahtarını not edin ve Anahtarı kısıtla'yı tıklayın.
API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin, ardından listeye yalnızcaSuper Service API ekleyin.
Bu yeni API anahtarı yalnızca Super Service API erişim izni verir.
Uygulamanızı ve hizmetlerinizi yeni API anahtarını kullanacak şekilde yapılandırın.
Ortama özgü API anahtarları kullanma
Hazırlık ve üretim gibi farklı ortamlar için farklı Firebase projeleri oluşturursanız her uygulama örneğinin ilgili Firebase projesiyle etkileşim kurması önemlidir. Örneğin, hazırlık uygulamanızın örneği hiçbir zaman üretim Firebase projenizle iletişim kurmamalıdır. Bu, hazırlık uygulamanızın hazırlık Firebase projenizle ilişkili API anahtarlarını kullanması gerektiği anlamına da gelir.
Kod değişikliklerini geliştirme aşamasından hazırlık ve üretim aşamalarına taşırken sorunları azaltmak için API anahtarlarını kodun içine eklemek yerine ortam değişkenleri olarak ayarlayın veya bir yapılandırma dosyasına ekleyin.
SSS ve sorun giderme
SSS
Firebase hizmetleri için API anahtarları varsayılan olarak kısıtlanır mı?
Evet. Firebase'in, Firebase ile ilgili API'lerle kullanılmak üzere otomatik olarak sağladığı tüm API anahtarlarına varsayılan olarak "API Kısıtlamaları" otomatik olarak uygulanır. Bu izin verilenler listesinde yer alan Firebase ile ilgili API'lerin listesini inceleyin.
Bu izin verilenler listesine eklenen API'ler, Firebase hizmetleri tarafından istemci kodundan yapılan API çağrılarıdır ve Firebase projenizin veya uygulamanızın tanımlanması için API anahtarları gerektirir. Firebase hizmetlerinin kullanımı için gereken API'lerin çoğunun aslında API anahtarlarınız için izin verilenler listesinde olması gerekmediğini unutmayın.
Firebase, tüm Firebase hizmetleri için gerekli API'leri eklediğinden, bir 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 ilgili API'lerin listesine bakın). Aksi takdirde, Firebase hizmetlerine çağrı yaparken hata alırsınız.
Tüm API anahtarlarınızı ve bunların "API kısıtlamalarını" Google Cloud konsolunun API'ler ve Hizmetler > Kimlik bilgileri sayfasında görüntüleyebilirsiniz.
Firebase'in bu "API kısıtlamalarını" nasıl uyguladığıyla ilgili olarak aşağıdakilere dikkat edin:
Mayıs 2024'ten itibaren, Firebase tarafından otomatik olarak sağlanan tüm yeni API anahtarları otomatik olarak Firebase ile ilgili API'ler listesiyle kısıtlanır.
Mayıs 2024'te, Firebase'in daha önce otomatik olarak sağladığı tüm mevcut ve kısıtlanmamış API anahtarları, Firebase ile ilgili API'lerin listesive projenin etkin durumdaki API'leriyle kısıtlanacak.
Firebase'in daha önce otomatik olarak temel hazırlığını yaptığı mevcut ve zaten kısıtlanmış API anahtarları değiştirilmedi.
Firebase tarafından otomatik olarak sağlanmamış mevcut API anahtarları değiştirilmedi.
Firebase uygulamamla ilişkili API anahtarını nasıl belirleyebilirim?
Firebase uygulamanızla ilişkili API anahtarını belirlemek için aşağıdaki seçeneklerden herhangi birini kullanabilirsiniz:
Firebase yapılandırma dosyamda/nesnemde aynı Firebase uygulaması için iki API anahtarı listeleyebilir miyim?
Firebase Apple Uygulamaları: Her uygulamanın kendi yapılandırma dosyası vardır ve yalnızca bir API anahtarı listelenebilir.
Firebase Android Uygulamaları: Firebase projesindeki tüm Android uygulamaları aynı yapılandırma dosyasında listelenir ve her uygulamanın yalnızca bir API anahtarı listelenebilir. Ancak bu yapılandırma dosyasındaki her uygulamanın farklı bir anahtarı olabilir.
Firebase web uygulamaları: Her uygulamanın kendi yapılandırma nesnesi vardır ve yalnızca bir API anahtarı listelenebilir.
Ancak bir uygulamayla birden fazla API anahtarı kullanabilirsiniz. Uygulamanızın bu diğer API anahtarlarına erişmesi için bir mekanizma (ör. ortam değişkeni) sağlamanız gerekir. Diğer API anahtarlarına erişim mekanizması, bu API anahtarlarının Firebase yapılandırma dosyanızda/nesnenizde listelenmesine bağlı olamaz.
Firebase, bir uygulamayla hangi API anahtarının eşleştirileceğini nasıl bilir (Firebase yapılandırma dosyasında/nesnesinde olduğu gibi)?
Firebase eşleşen kısıtlanmış anahtar bulamazsa yapılandırma dosyasında/nesnesinde Apple uygulamaları için iOS key, Android uygulamaları için Android key ve web uygulamaları için Browser key listelenir (bu anahtarların mevcut olduğu ve uygulamayla eşleşmelerini engelleyen "Uygulama Kısıtlamaları" olmadığı varsayılır).
API anahtarını ve alanı Firebase yapılandırma dosyamdan/nesnemden manuel olarak silebilir miyim?
Evet, API anahtarınızı yapılandırma dosyanızdan/nesnenizden manuel olarak silebilirsiniz. Ancak uygulamanızın bir API anahtarına erişmesi için başka bir mekanizma sağlamanız gerekir (ör. ortam değişkeni aracılığıyla). Aksi takdirde Firebase hizmetlerine yapılan tüm çağrılar başarısız olur.
Firebase yapılandırma dosyamı/nesnemi farklı API anahtarlarıyla manuel olarak düzenleyebilir miyim?
Evet, bir uygulamayla farklı bir API anahtarı ilişkilendirmek için yapılandırma dosyasını/nesnesini manuel olarak düzenleyebilirsiniz.
Bir API anahtarını bir Firebase projesinden diğerine taşıyabilir miyim?
Hayır, API anahtarı yalnızca belirli bir projeyi tanımlar ve başka bir projeye taşınamaz.
Google Cloud konsolunda listelenen bir API anahtarını silersem ne olur?
Bir uygulama tarafından kullanılan API anahtarını silerseniz o uygulamadan gelen API çağrıları başarısız olur. Geçersiz bir API anahtarı kullanmaya çalıştığınıza dair raporlar, e-postalar veya hatalar alabilirsiniz.
API anahtarı silme işlemi kalıcıdır ve geri alınamaz.
Firebase API anahtarı için "API kısıtlamaları" izin verilenler listesinde hangi API'ler gereklidir?
Firebase API anahtarı için, anahtarın "API kısıtlamaları" izin verilenler listesinde bulunması gereken tek API'ler, istemcinin çağrıyla birlikte bir API anahtarı sağlamasını gerektiren API'lerdir. Firebase ile ilgili çok az sayıda API'de bu şartın bulunduğunu unutmayın. Projenizde etkinleştirilen Firebase ile ilgili API'lerin çoğunun, anahtarın "API kısıtlamaları" izin verilenler listesinde olması gerekmez.
Firebase API anahtarı için "API kısıtlamaları" izin verilenler listesine hangi Firebase ile ilgili API'lerin eklenmesi gerektiğini belirlemek üzere aşağıdaki tabloyu kullanın. Firebase API anahtarlarının yalnızca Firebase hizmetleri için kullanılması gerektiğini unutmayın. Belirli API türleri için ayrı, kısıtlanmış API anahtarları oluşturma hakkında daha fazla bilgi edinin.
Projenizin API anahtarlarını Google Cloud konsolunun API'ler ve Hizmetler > Kimlik Bilgileri sayfasında görüntüleyebilir ve yönetebilirsiniz.
* Yalnızca Firebase API anahtarını üçüncü taraf araçlarıyla veya Firebase hizmetine/ürününe doğrudan REST erişimiyle kullanıyorsanız gereklidir.
** Ürünün SDK'sının önceki sürümleri için gereklidir. SDK'nın en yeni sürümünü kullanıyorsanız API'nin anahtarın izin verilenler listesinde olması gerekmez.
Sorun giderme
Bu API'ye yönelik isteklerin engellendiğini belirten API_KEY_SERVICE_BLOCKED veya Yasak 403 hatasını nasıl düzeltebilirim?
API_KEY_SERVICE_BLOCKED hatası veya aşağıdakine benzer bir hata alıyorsanız bu SSS'deki talimatları uygulayın:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
Uygulamanızın API'yi çağırmak için kullandığı API anahtarına muhtemelen "API Kısıtlamaları" uygulanmıştır ve anahtarın izin verilenler listesinde bu API yoktur.
Firebase dışı bir hizmet kullanmaya çalışırken bu hatayı alıyorsanız özellikle bu hizmet ve API için yeni bir API anahtarı oluşturmanızı önemle tavsiye ederiz. Firebase API anahtarları yalnızca Firebase hizmetleri/ürünleri için kullanılmalıdır.
Belirli API türleri için ayrı, kısıtlanmış API anahtarları oluşturma hakkında daha fazla bilgi edinin.
Bu hatayı nasıl düzeltebilirim? "Bu Firebase uygulamasının ölçüm kimliği sunucudan alınamadı."
Web uygulamanız tarafından kullanılan API anahtarına muhtemelen "API Kısıtlamaları" uygulanmıştır. Bu durumda, Firebase Management API'nin izin verilen API'ler listesinde olduğundan emin olun.
API anahtarımın geçersiz olduğunu belirten bir e-posta veya hata aldım. Ne oldu ve bu sorunu nasıl düzeltebilirim?
Geçersiz API anahtarlarının en yaygın nedenlerinden bazıları şunlardır:
API anahtarına, anahtarı kullanmaya çalışan uygulamayla eşleşmesini engelleyen ("Uygulama Kısıtlamaları") veya çağrılan API için kullanılamaz hale getiren ("API Kısıtlamaları") "API Anahtarı Kısıtlamaları" uygulanmıştır.
API anahtarı, Google Cloud konsolundaki projeden silindi.
API anahtarı, uygulamanın Firebase yapılandırma dosyasında/nesnesinde listelenen proje kimliği için oluşturulmamıştır.