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şim kurarken istekleri Firebase projenize yönlendirmek için kullanılan benzersiz bir dizedir. Bu sayfada, API anahtarlarıyla ilgili temel bilgiler ve API anahtarlarını Firebase uygulamalarıyla kullanma ve yönetmeyle ilgili en iyi uygulamalar açıklanmaktadır.
API anahtarları ve Firebase hakkında genel bilgiler
Firebase API anahtarları, normal API anahtarlarından farklıdır
API anahtarlarının genellikle kullanılmasının aksine, Firebase hizmetleri için API anahtarları
Arka uç kaynaklarına erişimi kontrol etmek için kullanılmaz; ancak gerçek zamanlı
Firebase Security Rules ile (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).
Genellikle API anahtarlarını titizlikle korumanız gerekir (ör. bir şifreleme hizmeti kullanarak veya anahtarları ortam değişkenleri olarak ayarlayarak). Ancak Firebase hizmetlerinin API anahtarlarını koda veya kontrollü yapılandırma dosyalarına eklemenizde sakınca yoktur.
Bir Firebase projesinin çok sayıda 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:
takip etmek için:
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
ziyaret edin.
Google Cloud konsolunda da kendi API anahtarlarınızı oluşturabilirsiniz. Örneğin, geliştirme veya hata ayıklama için. Bu özelliğin ne zaman önerilebileceği hakkında daha fazla bilgiyi bu sayfanın ilerleyen bölümlerinde bulabilirsiniz.
Firebase Apple Apps — Firebase'de otomatik eşleşen API anahtarını bulun
GoogleService-Info.plist adlı yapılandırma dosyasını
API_KEY alanı için geçerlidir.
Firebase Android Apps — Otomatik eşleşen API anahtarını
google-services.json Firebase yapılandırma dosyasına
current_key alanı için geçerlidir.
Firebase web uygulamaları: Otomatik olarak eşlenen API anahtarını Firebase yapılandırma nesnesinde, apiKey alanında bulun.
Bir API anahtarını kullanma
API anahtarları, etkileşimde bulunurken Firebase projenizi tanımlamak için kullanılır
Firebase/Google hizmetleri. Bunlar özellikle API isteklerini ilişkilendirmek için kullanılır
projenizle bağdaştırın. Ayrıca herkese açık verilere erişmek için de faydalıdırlar.
Örneğin bir API anahtarını, değerini REST'e geçirerek doğrudan kullanabilirsiniz.
Sorgu parametresi olarak API çağrısı. Bu örnekte, Dynamic Links bağlantı kısaltıcı API'ye nasıl istek gönderebileceğ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ını otomatik olarak Firebase yapılandırma dosyasında/nesnesinde arar. Ancak,
Uygulamanız için ortam da dahil olmak üzere farklı bir mekanizma kullanarak API anahtarları sağlayın
değişkenlerine karşılık gelir.
API anahtarlarını inceleyip uygun kısıtlamaları uygulayın (önerilir)
Firebase hizmetleri için API anahtarının
gizli olması durumunda, kısıtlamaları ve sınırları bu makalede açıklandığı şekilde inceleyip uygulamanız
bölümüne ekleyin.
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ı" ekler. Bu izin verilenler listesine eklenen API'ler, Firebase'le ilgili olan ve
istemcinin çağrıyla birlikte bir API anahtarı sağlamasını gerektirir. 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, API anahtarının izin verilenler listesi kullanmadığınız ürünlerin API'lerini içerebilir.
İzin verilenler listesinden API'leri kaldırabilirsiniz ancak API'leri kaldırmamaya çok dikkat etmeniz gerekir.
Firebase ve kullandığınız Firebase hizmetleri için gereken API'leri kaldırın
(bkz.
Firebase ile ilgili API'lerin listesi
her hizmet / ürünün izin verilenler listesinde olması gerekir. Aksi halde
Firebase hizmetleri çağrılırken hata alır.
Şifre tabanlı Authentication kullanıyorsanız kotayı daha da daraltın
Şifre tabanlı Firebase Authentication kullanıyorsanız ve API anahtarınız ele geçirilirse Firebase Security Rules tarafından korunan Firebase projenizin veritabanına veya Cloud Storage verilerine erişemez. Ancak Firebase'in kimlik doğrulama uç noktalarına erişmek ve projenizle ilgili kimlik doğrulama istekleri göndermek için API anahtarınızı kullanabilirler.
Kullanıcıların API anahtarının hatalı şekilde kullanılması ihtimalini azaltmak amacıyla,
bir kaba kuvvet saldırısına maruz kalırsanız, şuranın varsayılan kotasını
Normal trafiği yansıtacak identitytoolkit.googleapis.com uç nokta
beklentilerini karşılayabileceksiniz. Bu kotayı ve uygulamanızı daraltırsanız
aniden kullanıcı kazandığında, kotayı yükseltene kadar oturum açma hataları alabilirsiniz.
Projenizin API kotalarını şuradan değiştirebilirsiniz:
Google Cloud konsolu.
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 ele alınması gerekmese de
olarak gizli hale getirmek için, kullandığınız API anahtarlarıyla ilgili bazı ek önlemler
diğer Google Cloud API'leriyle yapabilirsiniz.
Firebase hizmeti/ürünü için olmayan bir Google Cloud API'yi (herhangi bir platformda) kullanıyorsanız bu API'lerle kullanmak üzere ayrı ve kısıtlanmış API anahtarları oluşturmanızı önemle tavsiye ederiz. Bu, API faturalandırılabilir bir Google Cloud hizmeti içinse özellikle ö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 gerektiğinde anahtarları döndürebilir veya değiştirebilir ve Firebase hizmetlerini kullanmanızı kesintiye uğratmadan API anahtarlarına ek kısıtlamalar ekleyebilirsiniz.
API'ye özel anahtar oluşturma talimatlarını görüntüleyin.
Bu talimatlarda, bir
Super Service API adlı sahte API.
1. adım: Mevcut API anahtarlarınızı Super Service API'e erişime izin vermeyecek şekilde yapılandırın
Google Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Listedeki mevcut 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) dahil etmediğinizden emin olun.
Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişebildiği API'leri açıkça belirtirsiniz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçili olduğunda, proje için etkinleştirilen herhangi bir API'ye erişmek için API anahtarı kullanılabilir.
Mevcut API anahtarlarınız artık Super Service API uygulamasına erişim izni vermeyecek ancak
her bir anahtar, kendi API'nize eklediğiniz API'ler için çalışmaya devam eder
API kısıtlamaları listesi.
2. Adım: Super Service API'e erişmek için yeni bir API anahtarı oluşturun ve kullanın
Kimlik Bilgileri sayfasına dönün. Firebase projenizin hâlâ seçili olduğundan emin olun.
Kimlik bilgileri oluştur > API anahtarı. 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 ve Super Service API'yi yalnızca listeye ekleyin.
Bu yeni API anahtarı yalnızca Super Service API öğesine erişim izni verir.
Uygulamanızı ve hizmetlerinizi yeni API anahtarını kullanacak şekilde yapılandırın.
Ortama özel API anahtarları kullan (önerilir)
Farklı ortamlar için farklı Firebase projeleri oluşturursanız (ör.
her bir uygulama örneğinin kendi kendini geliştirme ve üretim ortamındaki
ilgili Firebase projesi için geçerlidir. Örneğin, hazırlık uygulaması örneğiniz:
hiçbir zaman üretim Firebase projenizle konuşmayın. Bu aynı zamanda sizin
hazırlık uygulamasının, hazırlık Firebase projenizle ilişkili API anahtarlarını kullanması gerekir.
Geliştirme aşamasından hazırlık aşamasına
koda API anahtarları eklemek yerine, bunları en üst düzeye çıkarmak için
ortam değişkenlerini veya bunları bir yapılandırma dosyasına dahil etmenizi öneririz.
Firebase ML ile birlikte geliştirme için Firebase Local Emulator Suite 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 bir anahtar oluşturmayla ilgili talimatları Firebase ML belgelerinde bulabilirsiniz.
SSS ve sorun giderme
SSS
API anahtarlarıdır
Firebase hizmetleri varsayılan olarak kısıtlanır mı?
Evet, varsayılan olarak Firebase'in otomatik olarak sağladığı tüm API anahtarları, şunlarla birlikte kullanılır:
Firebase'le ilgili API'ler
"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
Firebase projenizin tanımlanması için API anahtarları gerektirmesi veya
uygulamasını indirin. Firebase hizmetlerinin kullanımı için gereken çoğu API'nin aslında
API anahtarlarınızın izin verilenler listesinde olması gerekir.
Firebase, tüm Firebase hizmetleri için gerekli API'leri eklediğinden,
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 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 hizmetlerini çağırırken hata alırsınız.
Tüm API anahtarlarınızı ve bunların "API kısıtlamalarını" Google Cloud konsolundaki API'ler ve Hizmetler > Kimlik bilgileri panelinde görüntüleyebilirsiniz.
Firebase'in bu "API kısıtlamalarını" nasıl uyguladığıyla ilgili aşağıdakileri unutmayın:
Mayıs 2024'ten itibaren Firebase tarafından otomatik olarak temel hazırlığı yapılan tüm yeni API anahtarları, Firebase ile ilgili API'lerin listesiyle otomatik olarak kısıtlanır.
Mayıs 2024'te, Firebase'in daha önce otomatik olarak sağladığı tüm mevcut ve sınırsız API anahtarları, Firebase ile ilgili API'lerin listesive projenin etkin API'lerinden herhangi biri ile sınırlandırılacak.
Firebase'in daha önce otomatik olarak temel hazırlığı yaptığı mevcut ve kısıtlanmış API anahtarları değiştirilmedi.
Firebase tarafından otomatik olarak sağlanmamış mevcut API anahtarları sağlanmamıştır
değiştirildi.
Hangi API anahtarını nasıl belirleyebilirim?
Firebase uygulamamla ilişkilendirilir mi?
Firebase uygulamanızla ilişkili API anahtarını belirlemek için aşağıdaki seçeneklerden herhangi birini kullanabilirsiniz:
Firebase konsol
settings adlı yayıncıya git
Proje ayarları,
ve ardından Uygulamalarınız kartına ilerleyin.
İlgili uygulamayı seçin.
İstediğiniz uygulamanın Firebase yapılandırma dosyasını/nesnesini edinin, ardından
API anahtarını bulun:
Apple: GoogleService-Info.plist uygulamasını indirin ve ardından
API_KEY alanı
Android: google-services.json uygulamasını indirin,
istediğiniz uygulamayı (paket adını arayın) ve ardından
current_key alanı
Web: Yapılandırma seçeneğini belirleyin ve ardından 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 (şunlardan biri): 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 basılı Firebase yapılandırmasında API anahtarını bulun:
Apple: API_KEY alanını bulun
Android: İlgili uygulamanın yapılandırmasını (paket adını arayın) ve ardından current_key alanını bulun
Web: apiKey alanını bulun
REST API
Şu kodu çağırarak API anahtarının apiKeyId'sini (UID) edinin:
uç noktayı koyabilir ve ardından
apiKeyId değeri sonraki adıma eklendi.
Bu keyString, Uygulamanın
yapılandırma yapısı
(Elma |
Android |
Web).
Firebase yapılandırma dosyamda/nesnemde aynı Firebase uygulaması için iki API anahtarı listeleyebilir miyim?
Firebase Apple Apps: Her uygulamanın kendi yapılandırma dosyası vardır ve yalnızca
listelenen bir API anahtarı var.
Firebase Android Uygulamaları: Firebase projesindeki tüm Android uygulamaları
aynı yapılandırma dosyasında listelenmeli ve her uygulamanın yalnızca bir API anahtarı olabilir
listelendi. Ancak bu yapılandırma dosyasındaki her uygulamanın listelenen farklı bir anahtarı olabilir.
Firebase Web Uygulamaları: Her uygulamanın kendi yapılandırma nesnesi vardır ve yalnızca
listelenen bir API anahtarı var.
Bununla birlikte, bir uygulamayla birden çok 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 anahtarlara bağlı olamaz
Firebase yapılandırma dosyanızda/nesnenizde listelenen API anahtarları.
Firebase'in
Bir uygulamayla hangi API anahtarının eşleştirileceğini bilmek (Firebase yapılandırmasında olduğu gibi)
dosyası/nesne) olabilir mi?
Firebase eşleşen herhangi bir kısıtlanmış anahtar bulamazsa
Apple uygulamaları için iOS key, Android key için yapılandırma dosyası/nesne
Android uygulamaları ve web uygulamaları için Browser key (bu anahtarların mevcut olduğu varsayılır)
ve "Uygulama Kısıtlamaları" bulunmamalıdır. eşleşmelerini önleyen
uygulamasında).
Manuel olarak
API anahtarı ve alanı, Firebase yapılandırma dosyamdan/nesnemden silinsin mi?
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
(bir ortam değişkeni aracılığıyla) Aksi halde, 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, farklı bir API anahtarı ilişkilendirmek için bir yapılandırma dosyasını/nesneyi manuel olarak düzenleyebilirsiniz
bir uygulamadır.
CANNOT TRANSLATE
Bir Firebase projesinden diğerine API anahtarı kullanmalı mıyım?
Hayır, API anahtarları yalnızca belirli bir projeyi tanımlar ve başka bir projeye taşınamaz.
Şu durumda ne olur?
Google Cloud konsolunda listelenen bir API anahtarı silinsin mi?
Bir uygulama tarafından kullanılan bir API anahtarını silerseniz söz konusu uygulamadan API çağırır
başarısız olur. Kullanmaya çalıştığınız raporlar, e-postalar veya hatalar alabilirsiniz
geçersiz bir API anahtarı.
API anahtarı silme kalıcı bir işlemdir ve geri alınamaz.
Firebase API anahtarının "API kısıtlamaları" izin verilenler listesinde hangi API'lerin bulunması gerekir?
Firebase API anahtarı için anahtarın üzerinde olması gereken tek API
"API kısıtlamaları" izin verilenler listesi, istemcinin izin verilenler listesine eklemesi gereken
Çağrıyla birlikte API anahtarı. Firebase'le ilgili çok az sayıda API'de bu özelliğe sahip olduğunu unutmayın.
gerekir. Projenizde etkinleştirilen Firebase ile ilgili API'lerin çoğunun, anahtarın "API kısıtlamaları" izin verilenler listesinde olması gerekmez.
Bir Firebase API anahtarının "API kısıtlamaları" izin verilenler listesine hangi Firebase API'lerinin 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ılabileceğini unutmayın. Daha fazla bilgi:
oluşturuluyor
Belirli API türleri için ayrı, kısıtlanmış API anahtarları.
* Yalnızca Firebase API anahtarını üçüncü taraf araçlarıyla veya Firebase hizmetine/ürüne doğrudan REST erişimi ile kullanıyorsanız gereklidir.
** Ürün SDK'sının önceki sürümleri için gereklidir. Şunu kullanıyorsanız:
SDK'nın en son sürümünü kullanıyorsanız, API'nin anahtarın
izin verilenler listesine ekleyin.
Sorun giderme
Nasıl yaparım?
şöyle bir API_KEY_SERVICE_BLOCKED veya Yasak 403 hatasını düzelt:
bu API'ye yapılan istekler engelleniyor mu?
API_KEY_SERVICE_BLOCKEDhatası veya aşağıdakine benzeyen 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ında muhtemelen
"API Kısıtlamaları"
ve anahtarın izin verilenler listesi bu API'yi içermiyor.
Firebase dışı bir hizmeti kullanmaya çalışırken bu hatayı alıyorsanız
bu hizmet için özel olarak yeni bir API anahtarı oluşturmanızı ve
API'ye gidin. 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.
Nasıl yaparım?
bu hata düzeltilsin mi? "Bu Firebase uygulamasının ölçüm kimliği sunucudan getirilemedi."
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 geçersiz. 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ında
"API Anahtarı Kısıtlamaları"
anahtarı kullanmaya çalışan uygulamayla eşleştirilemez hale getiren
("Uygulama Kısıtlamaları") ya da çağrılan API için kullanılamaz ("API")
Kısıtlamalar").
API anahtarı, Google Cloud konsolundaki projeden silindi.
[[["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: 2024-11-10 UTC."],[],[]]