Firebase中的未注册注册令牌

我有未注册的注册令牌,即使我确定我的令牌是正确的,我检查它在我的日志我正在使用主令牌FirebaseInstanceId.Instance.Token

这是我的方法:

 private void ConfigureFireBase() { Task.Run(() => { var instanceId = FirebaseInstanceId.Instance; Android.Util.Log.Debug("TAG", "{0} {1}", instanceId?.Token?.ToString(), instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope)); }); } 

我同样检查OnTokenRefresh方法

 public override void OnTokenRefresh() { var refreshedToken = FirebaseInstanceId.Instance.Token; Log.Debug(TAG, "Refreshed token: " + refreshedToken); SendRegistrationToServer(refreshedToken); } 

但是当我在Firebase控制台尝试时,它给了我这个错误消息,当我尝试在http://pushtry.com/与相同的令牌,我没有NotRegistered消息

注意,当我卸载应用程序,并再次安装令牌工作,但之后,我得到了这个错误信息。

    这个问题被解雇的原因是这个令牌是未注册的

     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. 

    参考

    这只发生在debugging模式,所以不要担心在发布模式,每件事情都会好起来的。

    你如何解决这个问题?

    它简单的强制刷新令牌在你的登陆活动(MainActivity,Login)中调用这个方法,这个方法强制OnTokenRefresh()调用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 } 

    希望这个帮助任何一个面临同样的问题

    在我的情况下,我曾使用模拟器和防火墙阻止它。 我用我的手机,启用开发人员的select,它得到了工作。

    希望这可以帮助。