Я добавляю push-уведомления в приложение Xamarin в разработке.Следуя инструкциям, я сделал все, что должно позволить ему работать.
- google-services.json, загруженный из firebase, добавленный в проект и сборку действий для сервисов GoogleServicesJson
- playдоступно в качестве подтвержденного в проверочном узле
- , добавленном к AndroidManifest.xml
- Реализован FirebaseIIDService
- Создан канал уведомлений
код получателя основного события:
<application android:label="RMS Metro Calendar">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
</application>
Код FirebaseIID (я не реализую управление регистрацией на стороне сервера):
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token)
{
// Add custom implementation, as needed.
}
}
Приложение прекрасно собирается и разворачивается, я могу успешно выйти из служб Playдоступно и в журнале я получаю: Инициализация FirebaseApp успешна
Однако он не генерирует экземпляр Firebase и Instance.Token никогда не принимается.Все, что я получаю, это следующее сообщение журнала:
09-19 13: 48: 31.576 D / FirebaseInstanceId (18578): сбой фоновой синхронизации: INVALID_SENDER, повторите попытку через 10 с
из которого продолжает повторяться попытка в постоянно растущих масштабах времени.
Я уверен, что должно быть что-то, что я где-то неправильно настроил в отношении реализации службы приемника / IID, но для жизни я не могуразберись.
Кто-нибудь еще сталкивался с этим?Есть ли способ проверить сервис FCM для моей конфигурации, чтобы получить дополнительную информацию о причинах его сбоя?
Спасибо!