tl; dr - onMessageReceived не вызывается в одном приложении, но вызывается в другом в том же проекте Firebase. Сообщение успешно отправлено, но (объект «данные») никогда не принимается устройством. Оба приложения расширяют одни и те же базовые сервисы.
Привет, ребята,
Я не могу заставить мое приложение SDK Sample работать с FCM, как это делает мое главное приложение.
То есть, я получаю успешный пост-ответ, но вообще ничего не происходит на устройстве, если это уведомление о данных, но уведомления уведомления, кажется, проходят - что означает, что это не что-то большое
{
"multicast_id": 5418976075057112952,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1526059128643443%14258072f9fd7ecd"
}
]}
Для интеграции я просто добавил свой пример приложения в приложение Firebase, которое мы используем для моих основных приложений iOS / Android на консоли, и когда я тестировал его с помощью консоли, все было «хорошо», то есть «уведомление» уведомления работали. Все значения выглядят корректно и в google-services.json
.
Мои приложения Main и Sample расширяют объекты InstanceID / Messagaging в Firebase из моей библиотеки (возможно, это проблематично? Я подозреваю, что нет).
Я что-то упускаю из своего сценария? Это почти идентично учебникам, что касается конфигурации. Кто-нибудь знает о проблемах, когда вы пытаетесь добавить два приложения для Android в одном проекте Firebase?
Есть также шанс, что мне придется подождать некоторое время, чтобы позволить Google обновить, но я был на этом большую часть сегодняшнего дня, и, как я уже сказал, консоли FCM / "Уведомления" работают уведомления
Я обеспокоен тем, что может быть что-то более низкий уровень, который мне не хватает. Пожалуйста, помогите мне!
Спасибо, ребята!
Примерно то, что я отправляю (это работает в основном приложении, как и ожидалось):
{
"registration_ids": [<DEVICE>],
"data":
{"field1": "data1", ... },
"content_available": true,
"priority": "high"
}
Код службы сообщений (шаблон)
public class AppFirebaseMessagingService extends BaseFirebaseMessagingService {
private static final String TAG = "AppFirebaseMessaging";
public AppFirebaseMessagingService() {
super();
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//this isn't called in SAMPLE
}
}
Декларации декларации:
<service android:name=".firebase.AppFirebaseMessagingService"
android:enabled="true"
android: permission = "android.permission.INTERNET" >
<intent-filter>
<action android:name = "com.google.firebase.MESSAGING_EVENT" / >
</intent-filter>
</service>
<service android:name=".firebase.AppFirebaseInstanceIDService"
android:enabled="true"
android:permission="android.permission.INTERNET" >
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>