Php 失效登记

Php 失效登记,php,firebase-realtime-database,firebase-authentication,firebase-cloud-messaging,Php,Firebase Realtime Database,Firebase Authentication,Firebase Cloud Messaging,我正在开发一个应用程序,其中我使用FCM restapi发送通知。 但是当我发送通知时,我总是收到相同的错误InvalidRegistration。 当我用谷歌搜索这个问题时,我知道问题出在注册令牌格式上。所以我想确定我是否发送了正确的令牌。 我要做的是对用户进行身份验证,然后auth请求返回 { “种类”:“identitytoolkit#VerifyPasswordResponse”, “本地化”:“SQFWGMTLRVD8xGBXC9T6UYKKNW2”, “电子邮件”:010265252

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

{
“种类”:“identitytoolkit#VerifyPasswordResponse”,
“本地化”:“SQFWGMTLRVD8xGBXC9T6UYKKNW2”,
“电子邮件”:01026525200@zeal.com",
“显示名称”:“,
“idToken”:"2.这篇文章的第二部分是一篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章的第二篇文章是关于关于关于关于关于一篇文章的第二篇文章的第二篇文章的第二篇医学博士2.目前,我国正在研究一种新的概念,一种新的概念,一种新的概念,一种新的ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZU jSa2dck0lpU5bNPVAPjfw6_Q4KMKKF6PmzjklogvjmtrJoua5LmFibJgrs57QIJFBDBGHVG-ETYAORGRIxWM1XFG2YD5S7SitW0H9H9H9H9H9H2R5Nb6GT93YYE05QyOfMrYMBfYOcyKdL6I0C8I0C7S7HgIxG1W5W5V5W5W2N4Qaikerpt2V5Hw“,
“注册”:真实,
“refreshToken”:“ACXXPGEB6DKYDSMRRVKAXRTSHRTSQPWC8KOFHYPEWDP473ZIIOZQPAF_CMEQP6CAOB2PNYYYX3CJDYACG2WCPYZCPIJ3S2TAUYIAKQFYHXC9FX1SRZWB4UHSLRE7G3ZPFWAIDQJEZQS2MOJTM5LXBRLPZQFOG8E8”,
“expiresIn”:“3600”
}

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

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

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

对于FCM,作为目标的所需值是客户端通过调用
getToken
生成的实际令牌

检索当前注册令牌

当您需要检索当前令牌时,请调用getToken。未授予权限时,此方法将返回null。否则,它将返回令牌或由于错误而拒绝承诺

  // Get Instance ID token. Initially this makes a network call, once retrieved
  // subsequent calls to getToken will return from cache.
  messaging.getToken()
  .then(function(currentToken) {
    if (currentToken) {
      sendTokenToServer(currentToken);
      updateUIForPushEnabled(currentToken);
    } else {
      // Show permission request.
      console.log('No Instance ID token available. Request permission to generate one.');
      // Show permission UI.
      updateUIForPushPermissionRequired();
      setTokenSentToServer(false);
    }
  })
  .catch(function(err) {
    console.log('An error occurred while retrieving token. ', err);
    showToken('Error retrieving Instance ID token. ', err);
    setTokenSentToServer(false);
  });
}
生成的令牌通常采用如下格式:

 <InstanceID>:<Actual token>

仔细检查您是否确实是生成令牌的正确方法。

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

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

对于FCM,作为目标的所需值是客户端通过调用
getToken
生成的实际令牌

检索当前注册令牌

当您需要检索当前令牌时,请调用getToken。未授予权限时,此方法将返回null。否则,它将返回令牌或由于错误而拒绝承诺

  // Get Instance ID token. Initially this makes a network call, once retrieved
  // subsequent calls to getToken will return from cache.
  messaging.getToken()
  .then(function(currentToken) {
    if (currentToken) {
      sendTokenToServer(currentToken);
      updateUIForPushEnabled(currentToken);
    } else {
      // Show permission request.
      console.log('No Instance ID token available. Request permission to generate one.');
      // Show permission UI.
      updateUIForPushPermissionRequired();
      setTokenSentToServer(false);
    }
  })
  .catch(function(err) {
    console.log('An error occurred while retrieving token. ', err);
    showToken('Error retrieving Instance ID token. ', err);
    setTokenSentToServer(false);
  });
}
生成的令牌通常采用如下格式:

 <InstanceID>:<Actual token>

仔细检查您是否确实是生成令牌的正确方法。

我也遇到了这个问题。。问题是我的设备令牌列在数据库表中的长度。当我将其更改为255时,它可以工作。

我也遇到了这个问题。。问题是我的设备令牌列在数据库表中的长度。当我将其更改为255时,它可以工作。

我使用Javascript文档作为回答的参考。但是,如果您指定作为客户端使用的平台,我可能会相应地更改它。我使用Javascript文档作为回答的参考。但是,如果您指定作为客户端使用的平台,我可能会相应地更改它。