Как включить Firebase после установки «firebase_messaging_auto_init_enabled» в «false» и получить токен / push-сообщения - PullRequest
0 голосов
/ 08 июля 2019

У меня проблема с получением каких-либо токенов или 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...