Sollte ich die Datei google-services.json (von Firebase) zu meinem Repository hinzufügen?

93

Ich habe mich gerade bei Firebase angemeldet und ein neues Projekt erstellt. Firebase fragte mich nach meiner App-Domain und einem SHA1-Debug-Schlüssel. Ich habe diese Details eingegeben und eine Datei google-services.json generiert, die ich im Stammverzeichnis meines App-Moduls hinzufügen kann.

Meine Frage ist, sollte diese .json-Datei einem öffentlichen (Open Source) Repo hinzugefügt werden. Ist es etwas, das geheim sein sollte, wie ein API-Schlüssel?

hitraj47
quelle

Antworten:

89

Eine google-services.jsonDatei aus dem Firebase-Dokument lautet :

Firebase verwaltet alle Ihre API-Einstellungen und Anmeldeinformationen über eine einzige Konfigurationsdatei.
Die Datei wird google-services.jsonunter Android und GoogleService-Info.plistiOS benannt.

Es scheint sinnvoll zu sein, es zu einem hinzuzufügen .gitignoreund es nicht in ein öffentliches Repo aufzunehmen.
Dies wurde in Ausgabe 26 mit weiteren Einzelheiten zu den Inhaltsstoffen erörtert google-services.json.

Ein Projekt wie googlesamples/google-serviceshat es in seinem.gitignore zum Beispiel.
Obwohl, wie von stepheaw kommentiert , dieser Thread erwähnt

Für eine Bibliothek oder ein Open-Source-Beispiel wird die JSON-Datei nicht eingeschlossen, da Benutzer ihre eigene einfügen sollen, um den Code auf ihr eigenes Backend zu verweisen.
Aus diesem Grund werden JSON-Dateien in den meisten unserer Firebase-Repos auf GitHub nicht angezeigt.

Wenn die "Datenbank-URL, der Android-API-Schlüssel und der Speicherbereich" für Sie nicht geheim sind, können Sie die Datei Ihrem Repo hinzufügen.
Wie in " Ist google-services.json vor Hackern sicher? " Erwähnt , ist dies jedoch nicht so einfach.

VonC
quelle
10
Das ist eigentlich nicht richtig; Ein Firebase-Ingenieur sagte, es sei in Ordnung , die Quellcodeverwaltung zu überprüfen. @ Yarons Antwort steht.
Willie Chalmers III
2
@ WillieChalmersIII OK. Ich habe die Antwort entsprechend geändert.
VonC
36

Aus dieser Diskussion geht hervor, dass Sie es einem öffentlichen Repo hinzufügen können. Sein Inhalt landet sowieso in der APK und ist wahrscheinlich leicht zu extrahieren.

Yaron
quelle
1
Ich stimme zu und arbeite gerade an diesem Thema. Gibt es eine Möglichkeit, die Schlüssel in dieser Datei von jemandem zu verschlüsseln, der die APK dekompiliert?
stepheaw
13
Während es definitiv wahr ist, dass API-Schlüssel leicht aus einer apk extrahiert werden können, war die Frage, ob google-services.jsondie Quellcodeverwaltung in einem öffentlichen Open-Source-Repo festgelegt werden sollte . In den allermeisten Fällen lautet die Antwort definitiv NEIN - es sei denn, der Repo-Besitzer möchte, dass die ganze Welt standardmäßig sein Google-Konto-API-Kontingent verwendet. @ VonCs Antwort steht.
Friederbluemle
2
hitraj47 fragte nach dem Hinzufügen zu einem öffentlichen Repository. In dieser Diskussion werden keine öffentlichen Repositories erwähnt, und es scheint sich um ein privates Repository zu handeln.
Eugene