FirebaseMessaging iOS端是否不再支持客户端上行sendMessage?求替代方案
Firebase旧版本的FirebaseMessaging曾支持iOS端通过Messaging.messaging().sendMessage()发送上行消息,但在v10.24.0及后续版本中,该iOS端功能已被移除,Android端仍保留此上行消息功能。
针对iOS端的替代方案,主要有以下两种:
方案一:通过Firebase Cloud Functions中转
借助Cloud Functions编写消息处理逻辑,iOS客户端通过HTTP请求调用Cloud Functions的触发器,由Cloud Functions负责向FCM发送消息。这种方式能统一处理跨平台的消息逻辑,还可在后端完成权限校验、消息内容过滤等操作,安全性和可控性更高。
实现思路:客户端将消息内容、目标等参数通过HTTP请求发送到Cloud Functions,Functions接收参数后,使用Firebase Admin SDK调用FCM的消息发送接口完成上行逻辑。方案二:iOS客户端直接调用FCM HTTP v1 API
客户端直接向FCM的HTTP v1接口发起请求,需要先获取有效的OAuth 2.0授权令牌(可通过Firebase Authentication获取用户身份令牌,再生成FCM请求所需的凭证)。不过此方式需要在客户端处理令牌的获取与刷新逻辑,流程相对繁琐,且需注意避免敏感信息泄露。
如果业务原本依赖iOS端直接发送上行消息,优先推荐Cloud Functions方案,既能兼容原有业务逻辑,又能保障后端的安全性和可维护性。
内容的提问来源于stack exchange,提问作者user14341201

