You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何从Firebase Dynamic Links获取深度链接

前置配置排查
  • 检查Firebase控制台的动态链接配置:确认你在Firebase控制台创建动态链接时,深度链接(Deep Link)字段 已正确填写你要跳转的业务链接,而非仅配置了短链域名
  • 检查Native端的配置是否完整:
    • iOS端:确认Info.plist中已正确添加FirebaseDynamicLinksCustomDomains数组,填入你自己的动态链接域名,同时 Associated Domains 已开启并添加了对应的applinks:前缀的动态链接域名
    • Android端:确认AndroidManifest.xml中对应的启动Activity已配置好<intent-filter>,包含正确的android:host、android:scheme,同时在Firebase控制台已上传正确的SHA-256签名
  • 检查动态链接生成逻辑:如果是代码生成的动态链接,确保生成时已传入link参数,React Native端示例代码:
import dynamicLinks from '@react-native-firebase/dynamic-links';

const generateLink = async () => {
  const link = await dynamicLinks().buildLink({
    link: 'https://your-actual-deep-link.com/path', // 此处必须填写你要提取的目标深度链接
    domainUriPrefix: 'https://yourapp.page.link',
    // 其余安卓、iOS跳转配置
  });
};
运行时提取逻辑排查
  • 确认你监听动态链接的时机和方法正确,React Native端需要同时覆盖冷启动打开和后台唤起打开两种场景,监听代码示例:
import React, { useEffect } from 'react';
import dynamicLinks from '@react-native-firebase/dynamic-links';

function App() {
  useEffect(() => {
    // 处理App后台状态下被动态链接唤起的场景
    const unsubscribe = dynamicLinks().onLink(link => {
      console.log('唤起时提取到的深度链接', link.url); // link.url即为目标深度链接
    });

    // 处理App完全关闭状态下被动态链接冷启动打开的场景
    dynamicLinks()
      .getInitialLink()
      .then(link => {
        if (link) {
          console.log('冷启动时提取到的深度链接', link.url);
        }
      });

    return () => unsubscribe();
  }, []);

  return <AppContent />;
}
  • iOS 14及以上系统需确认项目已开启Associated Domains权限,测试时不要使用代理、VPN类工具拦截动态链接的跳转校验
  • 测试阶段Android端确认测试包使用的签名文件,和Firebase控制台上传的SHA-256对应的签名一致;iOS端确认测试包的Bundle ID和Firebase控制台配置的一致
特殊场景排查
  • 直接在浏览器中打开动态短链不会触发深度链接提取,必须通过系统扫码、短信点击等系统级跳转触发App唤起,才能拿到完整的深度链接参数
  • 检查你使用的动态短链是否被拼接了额外的无关查询参数,异常参数会导致Firebase解析失败,无法返回对应深度链接

内容的提问来源于stack exchange,提问作者Shah Rukh Shahzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:18:04