Google-services.json'u (Firebase'den) kod depoma eklemeli miyim?


101

Firebase'e yeni kaydoldum ve yeni bir proje oluşturdum. Firebase benden uygulama alanım ve bir SHA1 hata ayıklama anahtarı istedi. Bu ayrıntıları girdim ve uygulama modülümün köküne eklemem için bir google-services.json dosyası oluşturdu.

Sorum şu, bu .json dosyası bir genel (açık kaynak) depoya eklenmeli mi? API anahtarı gibi gizli olması gereken bir şey mi?

Yanıtlar:


94

Firebase belgesinden bir google-services.jsondosya :

Firebase, tüm API ayarlarınızı ve kimlik bilgilerinizi tek bir yapılandırma dosyası aracılığıyla yönetir.
Dosya, google-services.jsonAndroid ve GoogleService-Info.plistiOS'ta adlandırılır .

Bunu a'ya eklemek .gitignoreve halka açık bir depoya dahil etmemek mantıklı görünüyor .
Bu, 26. sayıda nelerin google-services.jsoniçerdiğine dair daha fazla ayrıntıyla tartışıldı .

Örneğin bir projenin içindegooglesamples/google-services var . Gibi olsa yorumladı tarafından stepheaw , bu iplik söz yapar.gitignore

Bir kütüphane veya açık kaynaklı örnek için JSON dosyasını dahil etmiyoruz çünkü amaç, kullanıcıların kodu kendi arka uçlarına işaret etmek için kendi dosyalarını eklemeleridir.
Bu nedenle, GitHub'daki firebase depolarımızın çoğunda JSON dosyalarını görmeyeceksiniz.

"Veritabanı URL'si, Android API anahtarı ve depolama paketi" sizin için gizli değilse, dosyayı deponuza eklemeyi düşünebilirsiniz.
" Google-services.json bilgisayar korsanlarına karşı güvenli mi? " Bölümünde belirtildiği gibi , bu o kadar basit değil.

baueric yorumlarda soruyor :

O gönderide şöyle diyor:

JSON dosyası süper hassas bilgiler içermez (bir sunucu API anahtarı gibi)

Ancak google-services.jsongiriş çağrısı var api_key.
Bu bir " server api key" den farklı bir API anahtarı mı?

Willie Chalmers III , " google-services.json bilgisayar korsanlarına karşı güvenli mi? " Sorusuna işaret ediyor ve ekliyor:

Evet, bu API anahtarı hiçbir zaman herkese açık olmaması gereken bir sunucu API anahtarı değildir, bu nedenle google-services.jsonbaşkaları tarafından görülebilirse sorun değil .

Her durumda, istemci API anahtarınızın Google Cloud konsolunda nasıl kullanılabileceğini yine de kısıtlamalısınız.


11
Bu aslında doğru değil; Bir Firebase mühendisi, kaynak kontrolünü kontrol etmenin sorun olmadığını söyledi . @ Yaron'un cevabı duruyor.
Willie Chalmers III

2
@WillieChalmersIII Tamam. Cevabı buna göre değiştirdim.
VonC

@WillieChalmersIII Bu gönderide "JSON dosyası süper hassas bilgi içermiyor (bir sunucu API anahtarı gibi)" diyor, ancak google-services.jsongiriş çağrısı var api_key. Bu bir "sunucu api anahtarından" farklı bir api anahtarı mı?
baueric

1
@baueric Daha fazla bilgi için bu yanıta bakın . Evet, bu API anahtarı hiçbir zaman herkese açık olmaması gereken bir sunucu API anahtarı değildir, bu nedenle google-services.jsonbaşkaları tarafından görülebilirse sorun değil . Her durumda, istemci API anahtarınızın Google Cloud konsolunda nasıl kullanılabileceğini yine de kısıtlamalısınız.
Willie Chalmers III

36

Gönderen bu tartışma Eğer bir kamu repo ekleyebilirsiniz görünüyor. İçeriği yine de APK'de bitiyor ve muhtemelen çıkarılması kolay.


1
Katılıyorum ve şu anda bu sorun üzerinde çalışıyorum. Bu dosyadaki anahtarları, APK'yı yeniden derleyen birinden şifrelemenin bir yolu var mı?
stepheaw

13
API anahtarlarının bir apk'den kolayca çıkarılabileceği kesinlikle doğru olsa da, soru, herkese açıkgoogle-services.json bir açık kaynak deposunda kaynak kontrolüne taahhüt edilip edilmeyeceğiyle ilgiliydi . Ve çoğu durumda, repo sahibi tüm dünyanın varsayılan olarak Google hesabı API kotasını kullanmasını istemediği sürece , cevap kesinlikle HAYIR'dır . @ VonC'nin cevabı duruyor.
friederbluemle

2
hitraj47 bunu genel bir depoya eklemeyi sordu . Bu tartışma halka açık depolardan bahsetmiyor ve özel bir depoyu tartışıyor gibi görünüyorlar.
Eugene
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.