У меня проблема с получением каких-либо токенов или push-уведомлений с помощью моего пользовательского FirebaseMessagingService после того, как я отключил автоматическую инициализацию обмена сообщениями Firebase, установив ключ firebase_messaging_auto_init_enabled
в false
в моем AndroidManifest.xml.
Если ключ не установлен на false
, моя служба получает токен.Я имею в виду, это очевидно, что мне нужно инициализировать обмен сообщениями Firebase, чтобы получить токен, но все методы, которые я пробовал, похоже, не работают.
Для предотвращения юридических проблем я хочу включить только Firebase/ сервер связи после того, как пользователь моего приложения для Android принял условия использования.Вот почему я хочу предотвратить автоматическую инициализацию.После того, как пользователь принял условия использования, я хочу инициализировать приложение и отправить полученный токен на мой бэкэнд.
Методы, которые я уже попробовал:
FirebaseApp.initializeApp(<Context>)
FirebaseMessaging.getInstance().setAutoInitEnabled(true)
Я на самом деле могу получить токен с помощью метода FirebaseInstanceId.getInstance().getInstance()
, но я бы действительно предпочел использовать мой FirebaseMessagingService, который кажется более чистым способом.
Вот часть кода в моем AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:usesCleartextTraffic="true">
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
<service
android:name="de.itkl.smartmobile.module.push.implementation.SMPushMessageService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
</application>
</manifest>