#java #android #firebase #react-native #apk
#java #Android #firebase #react-native #apk
Вопрос:
Мне было интересно, может ли кто-нибудь помочь мне создать собственный модуль для Android, чтобы прочитать мой google-services.json
файл, используемый для Firebase, я обычно извлекаю определенное значение из объекта JSON и показываю его разработчику. Однако я не уверен, где он находится в самом APK.
У меня есть два разных google-services.json
файла. Структура моего проекта содержит следующие project/android/app/src/debug/google-services.json
и project/android/app/src/release/google-services.json
. Любая помощь более чем приветствуется, я просто не понимаю, куда копируются файлы в фактическом APK, чтобы я мог программно перейти, прочитать его и извлечь значения для соответствующих ключей.
Ответ №1:
Этот файл не включен в ваше приложение так, как вы себе представляете. Плагин Gradle служб Google анализирует его во время сборки и вводит некоторые из его значений в виде строковых ресурсов в ваше приложение. Если вы хотите прочитать эти значения, просто определите, какой строковый ресурс вам нужен, и получите к нему доступ, как к любому другому строковому ресурсу.
Документация о том, что на самом деле делает плагин службы Google во время сборки, находится здесь. Вы можете видеть, что он генерирует строковые ресурсы, которые выглядят следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<! -- Present in all applications -->
<string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string>
<! -- Present in applications with the appropriate services configured -->
<string name="gcm_defaultSenderId" translatable="false">1035469437089</string>
<string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string>
<string name="ga_trackingId" translatable="false">UA-65557217-3</string>
<string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string>
<string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
<string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
<string name="project_id" translatable="false">mydemoapp</string>
</resources>