Невозможно заставить Firebase работать без сборки Gradle: отсутствует google_app_id. Аналитика Firebase отключена

1

Приложение, над которым я работаю, имеет очень индивидуальный процесс сборки. Невозможно использовать 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.

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

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

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. Missing google_app_id. Firebase Analytics disabled. See https://firebase.google.com/docs/android/setup. Кроме того, я не вижу активных пользователей на панели мониторинга Firebase Analytics.

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

Теги:
firebase
initialization
firebase-analytics

1 ответ

2
Лучший ответ

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню