mjo*_*osh 16 android firebase firebase-cloud-messaging
我正在订阅一个主题,这是我在Android中的应用程序版本.
FirebaseMessaging.getInstance().subscribeToTopic(APP_VERSION);
Run Code Online (Sandbox Code Playgroud)
现在每次启动更新时,我都必须取消订阅旧版本并订阅新版本,因此如果我发送更新通知,则只有旧用户才能获得更新.相反,如果我只是否定一个版本就会很棒.
"condition": "!'2.1.1' in topics",
Run Code Online (Sandbox Code Playgroud)
在FCM中是否存在类似的内容?
小智 8
看起来 Firebase 现在支持这个!Firebase 发送消息
您最多可以在条件表达式中包含五个主题,并且支持括号。支持的运算符:&&、||、!。注意 ! 的用法:
!('TopicA' in topics)使用此表达式,任何未订阅 TopicA 的应用程序实例,包括未订阅任何主题的应用程序实例,都会收到该消息。
您只能根据用户是否订阅主题来定位用户,而不能根据他们是否未订阅来定位用户。
由于通配符匹配仅在 Firebase 通知中可用(尚不存在公共 API),并且控制台只能发送通知消息(如果应用程序不在前台,则确实由系统处理),因此您的选项将是仅限于变通办法。
我能想到的几个:
跟踪每个用户/设备 ID 以类似结构安装的应用程序版本Map<Token, Version>。您可以使用 Firebase 数据库来实现这一点。
枚举所有旧版本并通过通知定位那些版本。
向每个人发送包含新版本公告的数据消息(通过云消息 API),然后onMessageReceived()如果他们已经拥有最新版本,则禁止显示该消息。
嗯……事后看来#3 似乎是一个相当干净的解决方案。您发送的信息过多,但系统可以处理,只要频率不太高,您的用户很可能不会受到太大影响。
| 归档时间: |
|
| 查看次数: |
1481 次 |
| 最近记录: |