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
Android 如何检查Firebase云消息服务器中是否存在通知密钥?_Android_Firebase_Firebase Cloud Messaging - Fatal编程技术网

Android 如何检查Firebase云消息服务器中是否存在通知密钥?

Android 如何检查Firebase云消息服务器中是否存在通知密钥?,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我正在我的应用程序中实现Firebase云消息传递。我想知道如何检查FCM服务器中是否存在通知密钥 情景: 当用户第一次从设备登录时,我们检查服务器数据库中是否存在该用户的通知密钥。如果没有,我们将在FCM服务器中创建一个通知组,使用用户名作为通知密钥名称,并将设备令牌添加到通知组中,通知密钥保存到与用户对应的服务器数据库中。就像在link中一样 当用户注销时,我们从通知组中删除用户当前设备的设备令牌。但是,如果删除了组中的最后一个通知密钥,则该通知密钥将从服务器中删除 下次用户登录时,由于服务

我正在我的应用程序中实现Firebase云消息传递。我想知道如何检查FCM服务器中是否存在通知密钥

情景:

当用户第一次从设备登录时,我们检查服务器数据库中是否存在该用户的通知密钥。如果没有,我们将在FCM服务器中创建一个通知组,使用用户名作为通知密钥名称,并将设备令牌添加到通知组中,通知密钥保存到与用户对应的服务器数据库中。就像在link中一样

当用户注销时,我们从通知组中删除用户当前设备的设备令牌。但是,如果删除了组中的最后一个通知密钥,则该通知密钥将从服务器中删除

下次用户登录时,由于服务器数据库中已存在该用户的通知密钥,我们尝试使用该通知密钥将设备令牌添加到FCM服务器中的通知组。但是如果我们得到类似“通知密钥不存在!”的错误响应

如果我们可以检查FCM服务器中是否存在通知密钥,那么我们可以创建一个新的通知组,而不是尝试将令牌添加到不存在的通知组中并失败

那么,如何检查Firebase云消息中是否存在通知密钥


提前感谢!

不,您需要自己管理与用户关联的设备组的存在。当用户注销并从设备组中删除最后一个令牌时,您应该注意设备组是空的,因此当用户再次登录时,您应该创建一个新的设备组。

是的!我认为是这样方法是。为每个用户保留通知组令牌计数将是解决此问题的解决方案。当用户注销时,从fcm服务器中删除令牌,并在登录时减少计数,反之亦然。因此,我们只需检查计数是否为零,以检查通知密钥是否存在。谢谢,我在这里很费劲,但正在管理你自己是可行的