Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase云消息为已取消订阅的令牌返回200 OK_Firebase_Firebase Cloud Messaging - Fatal编程技术网

Firebase云消息为已取消订阅的令牌返回200 OK

Firebase云消息为已取消订阅的令牌返回200 OK,firebase,firebase-cloud-messaging,Firebase,Firebase Cloud Messaging,我们使用Firebase Java SDK(com.google.Firebase:Firebase admin)向iOS和Android设备发送推送通知 我们可以成功地构造通知,并使用注册的FCM令牌将其发送到设备 在这样的设备上,我们打开了系统设置,并禁用了应用程序的推送通知。 我们使用FCM发送了一个新的通知,但它没有出现在设备上——正如预期的那样。 但是,我们现在希望Firebase API会引发异常,因为FCM令牌不再有效/已被撤销 我们估计它可能会被缓存一段时间,但现在已经超过24小

我们使用Firebase Java SDK(com.google.Firebase:Firebase admin)向iOS和Android设备发送推送通知

我们可以成功地构造通知,并使用注册的FCM令牌将其发送到设备

在这样的设备上,我们打开了系统设置,并禁用了应用程序的推送通知。 我们使用FCM发送了一个新的通知,但它没有出现在设备上——正如预期的那样。 但是,我们现在希望Firebase API会引发异常,因为FCM令牌不再有效/已被撤销

我们估计它可能会被缓存一段时间,但现在已经超过24小时了。如果在设备上禁用推送,我们需要能够回退到其他交付方法。
为什么FCM仍然返回200 OK?

禁用应用程序的通知不会自动使用Firebase云消息注销该应用程序。如果您重新启用对该应用程序的通知,操作系统将很高兴再次发送通知,并且它将(据我所知)继续使用相同的令牌。

我现在已完全删除该应用程序,这将使令牌无效,但FCM仍会接受该消息并尝试发送它。也已经超过24小时了,我还没有找到这个问题的答案。如果用户禁用推送通知或删除应用程序,我们需要能够回退到其他方法来通知他们。。我们应该怎么做呢?如果用户表示他们不想从你的应用程序收到通知,Android将接受该请求。如果用户卸载了应用程序,它肯定没有办法显示通知。这两者都是有意为之。除了使用一个完全独立的系统来通知他们(如电子邮件或短信)之外,没有其他解决办法。但在执行此操作之前请仔细考虑,因为用户选择禁用应用程序中的通知和/或卸载应用程序是有原因的。