[英]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.