Ответ 1
Причина, по которой эта проблема срабатывает, приводит к тому, что токен незарегистрирован
The registration token may change when: The app deletes Instance ID The app is restored on a new device The user uninstalls/reinstall the app The user clears app data.
и это происходит в режиме отладки, так что не беспокойтесь в режиме выпуска, все будет хорошо.
Как вы можете исправить эту проблему?
его простое усилие, чтобы обновить токен, вызовите этот метод в вашей активности при приземлении (MainActivity, Login), этот метод заставляет firebase вызывать OnTokenRefresh()
private void ConfigureFireBase()
{
#if DEBUG
Task.Run(() =>
{
var instanceId = FirebaseInstanceId.Instance;
instanceId.DeleteInstanceId();
Android.Util.Log.Debug("TAG", "{0} {1}", instanceId?.Token?.ToString(), instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope));
});
// For debug mode only - will accept the HTTPS certificate of Test/Dev server, as the HTTPS certificate is invalid /not trusted
ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
#endif
}
Надеюсь, что эта помощь поможет решить одну проблему.