Android 我可以通过Firebase禁用推送通知吗?
在IOS上使用推送通知一段时间后,我正在应用程序中实现推送通知 用例:我有用户登录,并且帐户存储在我们的服务器上。我只想在用户登录时发送推送通知,并且只针对当前登录的用户。通知针对单个用户 为此,我使用Android 我可以通过Firebase禁用推送通知吗?,android,firebase,push-notification,notifications,Android,Firebase,Push Notification,Notifications,在IOS上使用推送通知一段时间后,我正在应用程序中实现推送通知 用例:我有用户登录,并且帐户存储在我们的服务器上。我只想在用户登录时发送推送通知,并且只针对当前登录的用户。通知针对单个用户 为此,我使用 FirebaseInstanceId.getInstance().getToken() ,在用户登录时将推送令牌发送到我们的服务器,并在注销时将其删除 就注册令牌、发送令牌等而言,一切都是有效的,但是,在某些情况下,这可能不起作用,例如,如果用户以飞行模式注销,那么我们的服务器仍然拥有令牌,并
FirebaseInstanceId.getInstance().getToken()
,在用户登录时将推送令牌发送到我们的服务器,并在注销时将其删除
就注册令牌、发送令牌等而言,一切都是有效的,但是,在某些情况下,这可能不起作用,例如,如果用户以飞行模式注销,那么我们的服务器仍然拥有令牌,并且认为它仍然应该发送令牌
在IOS上,有两个本地函数register/unregisterforremotenotifications,它基本上可以打开/关闭通知,而不管是否可以联系我的服务器。我可以在登录/注销时调用这些,IOS不会显示我的应用程序的任何远程通知,我很安全
但是,使用Firebase,我可以在登录时将令牌发送到服务器-
然而,对于注销来说,它更复杂,因为我找不到可调用的“本地”系统函数
我发现最好的办法就是总是发送“数据”通知,
,
这样,即使在后台,我的通知服务也会被调用,并检查我是否已登录,如果未登录,则不显示通知
然而,对于错误用户的通知仍然会发送到手机,这是一个风险,例如,如果我,上帝禁止将有一个错误。。。或者通知会记录在系统的某个地方
Sooo,我的问题是,是否有任何方法可以禁用通过Firebase注销时的通知
我希望这是有意义的,非常感谢 是的,您要做的是创建自己的登录和注销API。 在您的登录中,您应该存储用于推送通知的令牌 然后,任何需要推送的数据触发器都会执行一个循环,并为已知的已注册令牌构建一个推送 注销时,只需从数据库中删除该令牌,循环将不再包含它以进行推送。你们是正确的,使用数据标签只能在前台工作,但可能是错误的用户,这是正确的 如果您没有后端,请更清楚地说明您在何处/如何存储和使用代币进行推送,以便我可以进一步帮助您 我这样做是为了避免错误的人获得推送,但我在我的场景中支持前台和后台,因此只有注销或过期的令牌才会禁用我的应用上的推送功能。有两种方法:-