首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流式细胞术InvalidRegistration

流式细胞术InvalidRegistration
EN

Stack Overflow用户
提问于 2017-06-24 10:14:29
回答 2查看 6.8K关注 0票数 0

我开发了一个应用程序,在其中我使用FCM REST API发送通知。但是,当我发送通知时,我总是得到相同的错误InvalidRegistration。当我搜索这个问题时,我知道问题是以注册令牌格式出现的。所以我想确定我是否发送了正确的令牌。我所做的是对用户进行身份验证,然后auth请求返回。

代码语言:javascript
复制
{
    "kind": "identitytoolkit#VerifyPasswordResponse",
    "localId": "sQFWGMTlRvd8XgbxC9T6UyyKKNW2",
    "email": "01026525200@zeal.com",
    "displayName": "",
    "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjljYjU0Zjc4OTczNTU4NjU5ZTMxNGFkYzhjMTRkYzVmNjUyMTZmZmQifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vemVhbC1kZXYiLCJhdWQiOiJ6ZWFsLWRldiIsImF1dGhfdGltZSI6MTQ5ODI5ODUxNywidXNlcl9pZCI6InNRRldHTVRsUnZkOFhnYnhDOVQ2VXl5S0tOVzIiLCJzdWIiOiJzUUZXR01UbFJ2ZDhYZ2J4QzlUNlV5eUtLTlcyIiwiaWF0IjoxNDk4Mjk4NTE3LCJleHAiOjE0OTgzMDIxMTcsImVtYWlsIjoiMDEwMjY1MjUyMDBAemVhbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsiMDEwMjY1MjUyMDBAemVhbC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.Uuuy7566wziSjp001WD_OwG2OdrsggwbuftCnsdpKTicVKArdayEVGq4-pBNsQOZKYNrhpTmiv86d_lbGeeuu9LNJX0xwjvslGA2EffdS1Vaf_OaBrwlp9rllTdXsIEp5wSpPUX_jSa2dck0lpU5bNPVAPjfw6_q4kmKkf6pMzjKLogGvJmtRJOuA5LMFIbJGrs57QIJfbDbghvG-etYAorgRIXwM1Xfg2eYD5s7sItwv0h9hitkH2R_Fy1yJuml51nbA6GT93YyE05QYowfmrymbfYOCYtOsfdkdL6iU0CLH8I0Cw7sQhGIx1iuQl1Wv5aNN2Z4QAiKERpt2VJ_Hw",
    "registered": true,
    "refreshToken": "ACXxpGEB6dkyDsmRVkaXrTshqAhQPZCSVC8kofhypeWDP473zIIOZQpAF_cMEQP6CaOB2PnyDiYX3cJdYAcG2Wcpyzcpij3s2TauyiaKqfYTy76EtvHDGZrW-FyHXc9fX1sRZWbW4uhslrEZ_tYy2axolmc7g3ZPfWAidqHjEjIzqS2moJTM5lXuvxBRlpZQcNXQFOGtr8E8",
    "expiresIn": "3600"
}

因此,我使用idToken发送通知。是对的还是我做错了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-25 16:36:08

您使用的idToken似乎不是FCM的有效注册令牌,因此出现了InvalidRegistration错误。

您已经提到,该值(idToken)来自身份验证后的响应,这可能就是它刚刚出现的情况。根据我对auth的了解,它通常只是标识会话并在特定的时间间隔(expiresIn)之后过期。

对于FCM,目标所需的值是通过调用getToken从客户端生成的实际令牌。来自文档

检索当前注册令牌 当您需要检索当前令牌时,调用getToken。当未授予权限时,此方法返回null。否则,它将返回一个令牌或由于错误而拒绝承诺。 //获取实例ID令牌。最初,这会进行网络调用,一旦检索到//随后对getToken的调用,就会从缓存返回。messaging.getToken() .then(函数(currentToken) { if (CurrentToken){ sendTokenToServer(currentToken);updateUIForPushEnabled(currentToken);}currentToken{ // Show权限请求)。Console.log(‘没有可用的实例ID令牌。请求生成一个.’);//显示权限UI。updateUIForPushPermissionRequired();setTokenSentToServer(false);}) .catch(函数(Err){console.log(‘在检索令牌时发生错误“,err);showToken(’错误检索实例ID令牌',err);setTokenSentToServer(false);};}

生成的令牌通常采用如下格式:

代码语言:javascript
复制
 <InstanceID>:<Actual token>

例如:

代码语言:javascript
复制
 abcd1234:abcdefg123456

再次检查您是否是生成令牌的正确方法。

票数 3
EN

Stack Overflow用户

发布于 2020-05-30 06:45:19

我还面临着这个issue..the问题,那就是我的设备令牌列长度在数据库表中。当我把它改为255时,它就能工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44735311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档