Невозможно заставить Firebase работать без сборки Gradle: отсутствует google_app_id.Аналитика Firebase отключена - PullRequest
0 голосов
/ 28 февраля 2019

Приложение, над которым я работаю, имеет очень индивидуальный процесс сборки.Невозможно использовать gradle для создания моего приложения.Это не идеально, но я ничего не могу изменить по этому поводу.Тем не менее, я хочу использовать Firebase Analytics в своем приложении.Включены модули firebase-core, firebase-common, firebase-analytics, firebase-analytics-impl, firebase-iid, firebase-iid-interop, разъем для измерения firebase, разъем для измерения firebase, разъем для измерения, инструмент для игры, play-services-Измерение базы и Play-Services-измерения-API.Я также добавил следующие строки в свой strings.xml со значениями, которые я нашел в google-services.json для моего проекта Firebase:

<string name="google_app_id" translatable="false">xxx</string>
<string name="gcm_defaultSenderId" translatable="false">xxx</string>
<string name="default_web_client_id" translatable="false">xxx</string>
<string name="firebase_database_url" translatable="false">xxx</string>
<string name="google_api_key" translatable="false">xxx</string>
<string name="google_crash_reporting_api_key" translatable="false">xxx</string>
<string name="project_id" translatable="false">xxx</string>

(как описано здесь ) и удалилFirebaseInitProvider из AndroidManifest.В моих приложениях Application класс onCreate() я делаю:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
            .setApplicationId(getString(R.string.google_app_id))
            .setApiKey(getString(R.string.google_api_key));
FirebaseApp.initializeApp(this, builder.build(), "[DEFAULT]");

Пока никаких проблем.Когда приведенный выше код выполняется, я получаю сообщение журнала отладки, в котором говорится:

FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.

Хорошо, я не включил модуль auth.Мне не нужно это для моего приложения.Когда я вызываю FirebaseAnalytics.getInstance(adblockSettingsTextView.getContext()).getFirebaseInstanceId(), он возвращает строковое значение, поэтому я предполагаю, что инициализация прошла успешно.

Теперь каждый раз, когда я хочу записать событие, подобное этому

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Dashboard");
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);

, я вижуошибка в моем журнале, говорящая Missing google_app_id. Firebase Analytics disabled. See https://firebase.google.com/docs/android/setup. Кроме того, я не вижу активных пользователей на панели мониторинга Firebase Analytics.

Я прочитал все документы, которые смог найти, и изо всех сил старался найти причину этой проблемы.Но сейчас у меня нет больше идей, что я могу проверить или изменить, чтобы это работало.Помощь будет высоко ценится.Спасибо!

1 Ответ

0 голосов
/ 05 марта 2019

Если кто-то столкнется с той же проблемой, я оставлю ответ, полученный от службы поддержки Firebase, здесь:

Google Analytics для Firebase (GA4F) не поддерживает динамическую инициализацию.Наши инженеры проверяют возможные решения, чтобы поддержать это.Просто мы до сих пор не нашли точную временную шкалу относительно того, когда (или если) это будет доступно.

GA4F не будет работать без файла google-services.json (или Gradle на вашем конце).Даже если вы можете инициализировать FirebaseApp динамически с помощью кода, GA4F не распознает это и приведет только к сообщению об ошибке, которое вы видите.Сценарий, который вы получаете, относится только к Google Analytics для Firebase.Однако вы все равно можете использовать другие продукты, такие как Firestore, Realtime Database, Storage, даже если вы не используете плагин Gradle.

...