关于FCM的一点技巧

Firebase云消息传递(英语:Firebase Cloud Messaging,通常简称FCM),也称Firebase云信息传递,前身为Google云消息传递(GCM),是一项针对AndroidiOS网络应用程序的消息与通知的跨平台解决方案,目前可免费使用。

1.问题出现

当它出现问题的时候,往往就会表现出以下情况:

2.原因分析

这个问题一般出现在存在分流代理的软件(比如Clash)对 FCM 的推送出现了问题,正常情况下,使用 FCM 是不用挂梯的,但也有 不正常 的情况。

所以,为了能正常使用谷歌的推送服务,建议将 FCM 的分流走代理

这里有两个列表 GoogleCN.listGoogleFCM.list ,里面就涵盖了谷歌的常用域名,但是有些设备的谷歌服务,默认是用的中国cdn的域名,但该域名被阻断了。所以正确的情况下还得加上这两条规则,让这两条规则在直连规则的前面

DOMAIN-SUFFIX,xn--ngstr-lra8j.com
DOMAIN,services.googleapis.cn

3.解决办法

因此,建议的规则应如下所示:

  • 注意分流软件的规则匹配顺序,建议将这些规则放在最前方
……
rules:
 - DOMAIN-SUFFIX,xn--ngstr-lra8j.com,🚀 节点选择
 - DOMAIN,services.googleapis.cn,🚀 节点选择
 - DOMAIN,alt1-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt2-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt3-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt4-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt5-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt6-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt7-mtalk.google.com,🚀 节点选择
 - DOMAIN,alt8-mtalk.google.com,🚀 节点选择
 - DOMAIN,mtalk.google.com,🚀 节点选择
 - IP-CIDR,64.233.177.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,64.233.186.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,64.233.187.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,64.233.188.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,64.233.189.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.23.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.24.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.28.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.127.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.137.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.203.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.204.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,74.125.206.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,108.177.125.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,142.250.4.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,142.250.10.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,142.250.31.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,142.250.96.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,172.217.194.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,172.217.218.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,172.217.219.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,172.253.63.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,172.253.122.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,173.194.175.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,173.194.218.188/32,🚀 节点选择,no-resolve
 - IP-CIDR,209.85.233.188/32,🚀 节点选择,no-resolve
 - DOMAIN-SUFFIX,265.com,🚀 节点选择
 - DOMAIN-SUFFIX,2mdn.net,🚀 节点选择
 - DOMAIN-SUFFIX,alt1-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt2-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt3-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt4-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt5-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt6-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt7-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,alt8-mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,app-measurement.com,🚀 节点选择
 - DOMAIN-SUFFIX,cache.pack.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,clickserve.dartsearch.net,🚀 节点选择
 - DOMAIN-SUFFIX,crl.pki.goog,🚀 节点选择
 - DOMAIN-SUFFIX,dl.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,dl.l.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,googletagmanager.com,🚀 节点选择
 - DOMAIN-SUFFIX,googletagservices.com,🚀 节点选择
 - DOMAIN-SUFFIX,gtm.oasisfeng.com,🚀 节点选择
 - DOMAIN-SUFFIX,mtalk.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,ocsp.pki.goog,🚀 节点选择
 - DOMAIN-SUFFIX,recaptcha.net,🚀 节点选择
 - DOMAIN-SUFFIX,safebrowsing-cache.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,settings.crashlytics.com,🚀 节点选择
 - DOMAIN-SUFFIX,ssl-google-analytics.l.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,toolbarqueries.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,tools.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,tools.l.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,www-googletagmanager.l.google.com,🚀 节点选择
 - DOMAIN-SUFFIX,acl4.ssr,🎯 全球直连
 ……

4.实现效果

5.其他

可通过 绿色守护 这款软件来查看手机中哪些应用支持 FCM

实现fcm推送

  • fcm的工作原理是通过公用系统级长链接来节省各个应用分别在后台维持长链接所消耗的资源。

  • 有了fcm,应用只需要占用一点内存静驻在后台即可接收推送,而不需要自己维持长链接。

  • 但是fcm本身只负责把远端消息通知给APP,但不会通知到用户,发送通知是应用接收到fcm后自己完成的。

  • 换句话说,应用没有在后台有存活的话,即使有fcm,也是不能收到通知的,这种情况下日志就会出现Failed to broadcast to stopped app

  • 也就是,只要你没有完全杀死后台,是可以接收到 fcm 推送的消息的,手动划掉后台 ,或者 一键清理 都不影响,只要不 强行停止

  • fcmfix 的主要目的就是为了让即使不在后台的app也能顺利接收发送通知,不会出现Failed to broadcast to stopped app

红色的表示失败的推送,因为 Telegram 被我 强行停止 了,绿色的表示成功推送,我没有强行停止它,只是 划掉后台 / 点击一键清理

Q.E.D.