Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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_Push Notification_Firebase Cloud Messaging - Fatal编程技术网

Android 基于用户登录会话的Firebase通知

Android 基于用户登录会话的Firebase通知,android,firebase,push-notification,firebase-cloud-messaging,Android,Firebase,Push Notification,Firebase Cloud Messaging,我在我的应用程序中添加了firebase推送通知,我只使用数据负载发送通知消息,因为无论应用程序是在后台还是前台,我都需要通知数据。我的应用程序中有一个登录系统。在FirebaseMessagingService的onMessageReceived方法中,我正在检查用户当前是否登录,并根据该通知进行发送。只要用户登录,在用户注销并再次登录后,任何挂起的通知都不会发送,它就可以正常工作。我不知道如何处理这种情况。任何帮助都将不胜感激。您应该在注销时触发(通知服务器)事件,以便在用户注销时, 在这种

我在我的应用程序中添加了firebase推送通知,我只使用数据负载发送通知消息,因为无论应用程序是在后台还是前台,我都需要通知数据。我的应用程序中有一个登录系统。在
FirebaseMessagingService
onMessageReceived方法中,我正在检查用户当前是否登录,并根据该通知进行发送。只要用户登录,在用户注销并再次登录后,任何挂起的通知都不会发送,它就可以正常工作。我不知道如何处理这种情况。任何帮助都将不胜感激。

您应该在注销时触发(通知服务器)事件,以便在用户注销时, 在这种情况下,服务器不应触发任何内容。 在服务器端维护一个队列(内容),以便在用户再次登录时将数据发送给用户。 注意:-队列应在一段时间内有效,否则长时间队列可能会变得太大并妨碍服务器。

您应该在注销时触发(通知服务器)事件,以便在用户注销时, 在这种情况下,服务器不应触发任何内容。 在服务器端维护一个队列(内容),以便在用户再次登录时将数据发送给用户。
注意:-队列应在一定的时间限制内有效,否则长时间队列可能会变得太大并妨碍服务器。

通过
挂起通知
,您是指注销和下一次登录之间的通知?是的,如果用户当前未登录并且从后端触发通知,然后,它应该在再次登录后立即收到通知。当找不到会话时,您必须将这些通知保存在数据库中,并且在登录后,分配一个作业(或异步)来检查数据库并触发这些通知。请务必在启动后清除数据库好的,谢谢。这应该行得通。让我与后端团队核实一下,当我说
数据库
时,我指的是像sqlite这样的移动数据库,而不是后端服务器。通过
挂起通知
,你指的是注销和下次登录之间的通知?是的,如果用户当前未登录并且通知从后端发出,然后,它应该在再次登录后立即收到通知。当找不到会话时,您必须将这些通知保存在数据库中,并且在登录后,分配一个作业(或异步)来检查数据库并触发这些通知。请务必在启动后清除数据库好的,谢谢。这应该行得通。让我和后端团队核实一下,当我说
数据库
时,我指的是像sqlite这样的移动数据库,而不是后端服务器。我遵循Cerlin Boss的逻辑,它工作得很好。你的应用程序应该保持轻量,应用程序中的存储太多可能导致应用程序的沉重,并且必须像Cerlin Boss所说的那样在应用程序端进行更多计算“如果找不到会话,则在登录后,调度作业(或异步)以检查数据库并触发这些通知。确保在触发后清除数据库“\一般情况下,通知部分应保留在服务器端是的,我们将在firedI遵循Cerlin Boss逻辑并运行良好后清除通知。您的应用程序应保持轻量,应用程序中存储过多可能导致应用程序负担过重,并且必须像Cerlin Boss所说的那样在应用程序端进行更多计算“如果找不到会话,则在登录后,调度作业(或异步)以检查数据库并触发这些通知。请确保在触发后清除数据库。“\n一般情况下,通知部分应保留在服务器端。是的,我们将在触发后清除通知