Firebase için API anahtarlarını kullanma ve yönetme hakkında bilgi
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
API anahtarı, Firebase ve Google hizmetleriyle etkileşimde bulunurken 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ı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ı, normal API anahtarlarından farklıdır.
API anahtarlarının genellikle kullanım şeklinden farklı olarak, 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 (örneğin, bir kasa hizmeti kullanarak veya anahtarları ortam değişkenleri olarak ayarlayarak). Ancak Firebase hizmetlerinin API anahtarlarını koda veya check-in yapılandırılmış dosyalara ekleyebilirsiniz.
Bir Firebase projesinde 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şturulur
Firebase Apple uygulaması oluşturma > iOS key otomatik olarak oluşturulur
Firebase Android uygulaması oluşturma > Android key otomatik olarak oluşturulur
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 önerinin ne zaman yapılabileceği hakkında daha fazla bilgiyi bu sayfanın ilerleyen bölümlerinde bulabilirsiniz.
Firebase Apple Uygulamaları: Otomatik olarak eşleştirilen API anahtarını Firebase yapılandırma dosyasındaki GoogleService-Info.plist alanında, API_KEY alanında bulabilirsiniz.
Firebase Android Uygulamaları: Otomatik olarak eşleştirilen API anahtarını Firebase yapılandırma dosyasındaki google-services.json alanında, current_key alanında bulabilirsiniz.
Firebase Web Uygulamaları: Otomatik olarak eşleştirilen API anahtarını apiKey alanındaki Firebase yapılandırma nesnesinde bulabilirsiniz.
Bir API anahtarını kullanma
API anahtarları, Firebase/Google hizmetleriyle etkileşimde bulunurken Firebase projenizi tanımlamak için kullanılır. Bu anahtarlar, özellikle kota ve faturalandırma için API isteklerini projenizle ilişkilendirmek amacıyla kullanılır. Ayrıca herkese açık verilere erişmek için de faydalıdır.
Örneğin, değerini bir REST API çağrısına sorgu parametresi olarak ileterek API anahtarını açıkça kullanabilirsiniz. Bu örnekte, Dynamic Links bağlantı kısaltma 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'sini çağırdığında projenizin API anahtarı için Firebase yapılandırma dosyası/nesnesine otomatik olarak bakar. Ancak, ortam değişkenleri de dahil olmak üzere farklı bir mekanizma kullanarak uygulamanız için API anahtarları sağlayabilirsiniz.
API anahtarlarını inceleyin ve uygun kısıtlamaları uygulayın (önerilir)
Firebase hizmetleri için API anahtarını gizli olarak değerlendirmek gerekli olmasa da bu bölümde açıklandığı gibi kısıtlamaları ve sınırları inceleyip uygulamanız gerekir.
Firebase API anahtarlarınızın izin verilenler listesine otomatik olarak eklenen API'leri inceleme
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ı ile birlikte bir API anahtarı sağlamasını gerektiren Firebase ile ilgili API'lerdir. Firebase hizmetlerinin kullanımı için gereken API'lerin çoğunun, 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, 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 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 hatalarla karşılaşırsınız.
Şifre tabanlı Firebase Authentication kullanıyorsanız ve birisi API anahtarınızı ele geçirirse bu veriler Firebase Security Rules ile korunduğu sürece Firebase projenizin veritabanı veya Cloud Storage verilerine erişemez. Ancak Firebase'in kimlik doğrulama uç noktalarına erişmek ve projenize karşı kimlik doğrulama istekleri yapmak için API anahtarınızı kullanabilirler.
Birinin kaba kuvvet saldırısı girişiminde bulunmak 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 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 konsolunda değiştirebilirsiniz.
Firebase dışı hizmetler için ayrı ve kısıtlanmış API anahtarları kullanın.
Firebase hizmetleri için kullanılan API anahtarlarının genellikle gizli olarak değerlendirilmesi gerekmez. Ancak diğer Google Cloud API'lerle kullandığınız API anahtarlarıyla ilgili 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ı ve kısıtlanmış API anahtarları oluşturmanızı önemle tavsiye ederiz. Bu durum, özellikle API'nin faturalandırılabilir Google Cloud bir hizmet için olması durumunda ö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ı ve kısıtlanmış API anahtarları kullanarak gerektiğinde anahtarları döndürebilir veya değiştirebilir ve Firebase hizmetlerini kullanmaya devam ederken API anahtarlarına ek kısıtlamalar ekleyebilirsiniz.
API'ye özel anahtarlar oluşturma talimatlarını görüntüleyin.
Bu talimatlarda, Super Service API adlı sahte bir API için ayrı ve kısıtlanmış bir API anahtarının nasıl oluşturulacağı açıklanmaktadır.
1. adım: Mevcut API anahtarlarınızı Super Service API'ya erişimi engelleyecek şekilde yapılandırın
Google Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Listedeki her mevcut 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ının API kısıtlamalarını yapılandırdığınızda, anahtarın erişebileceği API'leri açıkça belirtirsiniz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçildiğinde bir API anahtarı, proje için etkinleştirilmiş tüm API'lere erişmek üzere kullanılabilir.
Mevcut API anahtarlarınız artık Super Service API erişimi sağlamayacak ancak her anahtar, API kısıtlamaları listesine eklediğiniz tüm API'lerde çalışmaya devam edecek.
API kısıtlamaları listesine eklemeniz gerekir.
2. adım: Super Service API'a erişmek için yeni bir API anahtarı oluşturun ve kullanın
Kimlik bilgileri sayfasına dönün. Firebase projenizin seçili olduğundan emin olun.
Kimlik bilgileri oluştur > API anahtarı'nı tıklayın. Yeni API anahtarını not edin, ardından 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şimi sağlar.
Uygulamanızı ve hizmetlerinizi yeni API anahtarını kullanacak şekilde yapılandırın.
Ortama özgü API anahtarları kullanma (önerilir)
Hazırlık ve üretim gibi farklı ortamlar için farklı Firebase projeleri oluşturursanız her uygulama örneğinin kendi Firebase projesiyle etkileşimde bulunması önemlidir. Örneğin, hazırlama uygulamanızın hiçbir zaman üretim Firebase projenizle iletişim kurmaması gerekir. 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ığa ve üretime kod değişikliklerinin tanıtımıyla ilgili sorunları 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 ile birlikte Firebase ML kullanıyorsanız yalnızca hata ayıklama için kullanılabilen bir API anahtarı oluşturup kullanmanız gerektiğini unutmayın. Bu tür bir anahtar oluşturmayla ilgili talimatları Firebase ML belgelerinde bulabilirsiniz.
SSS ve sorun giderme
SSS
Firebase hizmetleri için API anahtarları varsayılan olarak kısıtlanmış mı?
Evet. Firebase'in Firebase ile ilgili API'lerde 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 çağrılan ve Firebase projenizin veya uygulamanızın tanımlanması için API anahtarları gerektiren API'lerdir. Firebase hizmetlerinin kullanımı için gerekli olan API'lerin çoğunun 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. İzin verilenler listesinden API'leri kaldırabilirsiniz ancak Firebase ve kullandığınız Firebase hizmetleri için gereken 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 hatalarla karşılaşırsınız.
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ı, Firebase ile ilgili API'lerin listesi ile otomatik olarak sınırlandırılacak.
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 listesiartı projenin şu anda etkin olan API'lerinden herhangi biriyle kısıtlanacak.
Firebase'in daha önce otomatik olarak sağladığı mevcut ve zaten kısıtlanmış API anahtarları değiştirilmedi.
Firebase tarafından otomatik olarak sağlanan API anahtarları değiştirilmedi.
Hangi API anahtarının Firebase uygulamamla ilişkili olduğunu nasıl belirleyebilirim?
Hangi API anahtarının Firebase uygulamanızla ilişkili olduğunu belirlemek için aşağıdaki seçeneklerden herhangi birini kullanabilirsiniz:
Firebase konsolu
settingsProje ayarları'na gidin,
ve Uygulamalarınız kartına doğru aşağı kaydırın.
İlgilendiğiniz uygulamayı seçin.
İlgili uygulamanın Firebase yapılandırma dosyasını/nesnesini alın ve ardından API anahtarını bulun:
Apple: GoogleService-Info.plist dosyasını indirin ve API_KEY alanını bulun.
Android: google-services.json dosyasını indirin, ilgilendiğiniz uygulamanın yapılandırmasını bulun (paket adını arayın) ve ardından current_key alanını bulun.
Web: Yapılandırma seçeneğini belirleyin ve apiKey alanını bulun.
Firebase CLI
Aşağıdaki komutu çalıştırarak ilgilendiğiniz uygulamanın Firebase yapılandırma dosyasını/nesnesini edinin:
firebase apps:sdkconfig PLATFORMFIREBASE_APP_ID
PLATFORM (bir tanesi): IOS | ANDROID | WEB
FIREBASE_APP_ID: Firebase Uygulamanız için Firebase tarafından atanan benzersiz tanımlayıcı (Uygulama Kimliğinizi bulma)
Uygulamanın yazdırılmış Firebase yapılandırmasında API anahtarını bulun:
Apple: API_KEY alanını bulun.
Android: İlgilendiğiniz uygulamanın yapılandırmasını bulun (paket adını arayın), ardından current_key alanını bulun.
Web: apiKey alanını bulun.
REST API
İlgili uç noktayı çağırarak API anahtarının apiKeyId değerini (UID) alın ve ardından apiKeyId değerini bir sonraki adıma iletin.
Bu keyString, uygulamanın yapılandırma yapısında (Apple | Android | Web) bulunan değerle aynıdır.
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 uygulamada yalnızca bir API anahtarı listelenebilir. Ancak bu yapılandırma dosyasındaki her uygulamanın farklı bir anahtarı listelenebilir.
Firebase web uygulamaları: Her uygulamanın kendi yapılandırma nesnesi vardır ve yalnızca bir API anahtarı listelenebilir.
Ancak bir uygulamada birden fazla API anahtarı kullanabilirsiniz. Uygulamanızın bu diğer API anahtarlarına erişebilmesi için bir mekanizma sağlamanız gerekir (ör. ortam değişkeni aracılığıyla). 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, hangi API anahtarının bir uygulamayla (ör. Firebase yapılandırma dosyasında/nesnesinde) eşleştirileceğini nasıl anlar?
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 (bu anahtarların mevcut olduğu ve bu uygulamayla eşleşmelerini engelleyen "Uygulama Kısıtlamaları" olmadığı varsayılarak) listeler.
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 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 aramalar başarısız olur.
Firebase yapılandırma dosyamı/nesnemi farklı API anahtarlarıyla manuel olarak düzenleyebilir miyim?
Evet, farklı bir API anahtarını bir uygulamayla 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 bir API anahtarını silerseniz söz konusu 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 olması gereken tek API'ler, istemcinin çağrı ile birlikte bir API anahtarı sağlamasını gerektiren API'lerdir. Bu koşulun çok az Firebase ile ilgili API'de geçerli olduğunu unutmayın. Projenizde etkinleştirilen Firebase ile ilgili API'lerin çoğu, anahtarın "API kısıtlamaları" izin verilenler listesinde yer almasına gerek yoktur.
Firebase API anahtarı için "API kısıtlamaları" izin verilenler listesine hangi Firebase ile ilgili API'lerin dahil edilmesi gerektiğini belirlemek için 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ı ve kısıtlanmış API anahtarları oluşturma hakkında daha fazla bilgi edinin.
* Yalnızca Firebase API anahtarını üçüncü taraf araçlarla 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 yapılan isteklerin engellendiğini belirten bir API_KEY_SERVICE_BLOCKED veya Forbidden 403 hatasını nasıl düzeltebilirim?
API_KEY_SERVICE_BLOCKED hatası veya aşağıdaki gibi bir hata alıyorsanız bu SSS'deki yönergeleri 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 yer almıyordur.
Firebase dışı bir hizmeti kullanmaya çalışırken bu hatayı alıyorsanız söz konusu hizmet ve API için özel olarak 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ı ve 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 getirilemedi."
Web uygulamanızın kullandığı API anahtarına büyük olasılıkla "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 mesajı 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ış.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-09-06 UTC."],[],[],null,[]]