如何用新版Firebase Admin SDK实现FCM通知深度链接?为何无link参数?
关于Firebase Admin SDK移除
link/link_android参数的原因及优化方案 移除核心原因
Firebase团队在新版SDK中砍掉link/link_android这类直接参数,核心目的是统一跨平台深度链接的实现逻辑,主推Firebase Dynamic Links作为官方标准方案。这样能让Android、iOS、Web多端拥有一致的链接跳转体验,避免各平台参数碎片化带来的维护成本,同时解决旧参数仅能嵌入链接、缺乏链路追踪、平台适配、回退页配置等进阶能力的问题。
更简洁的官方替代方案
你当前基于逆向工程的实现依赖FCM内部私有字段,存在版本兼容风险,推荐改用官方支持的Dynamic Links方案,配置更简洁且稳定性更高:
Firebase Admin SDK(Python)代码
messaging.send(messaging.Message( notification=messaging.Notification( title='test title', body='test body', ), android=messaging.AndroidConfig( notification=messaging.AndroidNotification( click_action='OPEN_DYNAMIC_LINK' ) ), data={ 'dynamic_link': 'https://your-domain.page.link/xxx' }, token='.....', ))
Android客户端处理
无需重写handleIntent,只需在AndroidManifest中为目标Activity配置Intent Filter:
<intent-filter> <action android:name="OPEN_DYNAMIC_LINK" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
再在目标Activity中解析深度链接:
FirebaseDynamicLinks.getInstance() .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData -> pendingDynamicLinkData?.link?.let { deepLink -> // 执行深度链接跳转逻辑 } }
注意事项
你当前的逆向方案依赖FCM内部私有字段gcm.notification.click_action,后续FCM库更新可能修改或移除该字段,导致功能失效,建议尽快迁移到官方方案。
内容的提问来源于stack exchange,提问作者Alessandro Scarozza
相关产品推荐
相关产品推荐

