繁体   English   中英

Xamarin iOS firebase问题

[英]Xamarin iOS firebase issue

作为我项目的一部分,我正在为iOS开发firebase云消息。 部分我的问题如下:iOS应用程序的AppDelegate包含以下代码:

        // Monitor token generation
        InstanceId.Notifications.ObserveTokenRefresh((sender, e) =>
        {
            // Note that this callback will be fired everytime a new token is generated, including the first
            // time. So if you need to retrieve the token as soon as it is available this is where that
            // should be done.
            var refreshedToken = InstanceId.SharedInstance.Token;
            Console.WriteLine(refreshedToken);

            if (refreshedToken != null)
            {
                if (credentialsService.Email.Equals("") && credentialsService.Password.Equals(""))
                {
                    credentialsService.SaveCredentials(refreshedToken);
                }
                else
                {
                    credentialsService.SaveCredentials(credentialsService.Email, credentialsService.Password, refreshedToken, credentialsService.Token);
                }
            }
            else
            {
                Console.WriteLine("error, token is empty");
            }
        });

只要需要令牌,就会调用此回调函数。 然后,凭证将用于收集该令牌,并在用户登录时将其发送到服务器。但问题是,令牌未立即就绪。 在加载此应用程序的启动画面之前,将为此Android版本(工作方式几乎相同)分配一个令牌。 然而,iOS应用程序在生成令牌之前需要花费大量时间(大约20-30秒)。 用户可以在此时记录它,之后生成的任何令牌只会在用户重新登录后发送到服务器。

是否有任何解决方案可以确保更快地生成令牌? 我确实得到以下错误,这在互联网上并不少见。 然而,谷歌搜索解决方案并没有真正帮助。

无法获取APNS令牌Error Domain = com.firebase.iid Code = 1001“(null)”

FIRMessaging注册尚未准备好使用身份验证凭据

谢谢你,里卡多

我有一个解决方案,但很难看:

            while (string.IsNullOrEmpty(token))
        {
            _taskToken.Wait(1000);
            this.token = InstanceId.SharedInstance.Token;
        }

您可以在60或90秒后等待刷新,然后获取令牌..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM