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

React Native中Firebase动态链接传递参数丢失如何解决

问题原因

你遇到的参数丢失问题主要由以下两个常见原因导致:

  1. Firebase Dynamic Links 后台配置的深度链接匹配规则为精确匹配https://letssin.app/invite,路径后缀的token会被自动截断,仅返回匹配到的基础路径
  2. 直接将token拼接为路径后缀的方式,容易受路径匹配规则限制,兼容性低于查询参数传参方式

解决方案

方案一(推荐,兼容性最高):将token改为查询参数传递

1. 修改生成动态链接的逻辑

const buildLink = async () => {
    const link = await dynamicLinks().buildLink({
      // 把token调整为查询参数传递
      link: `https://letssin.app/invite?token=${checklistToken.token}`,
      domainUriPrefix: 'https://letssin.page.link/invite',
      android: {
        packageName: 'PACKAGE_NAME',
      },
      ios: {
        bundleId: 'BUNDLE_ID',
        appStoreId: 'APP_STORE_ID',
      },
    });
    console.log('buildLink - ', link);
    return link;
  };

2. 调整接收端解析逻辑

const handleDynamicLink = (link) => {
  if (!link?.url) return;
  // 解析URL中的查询参数
  const urlInstance = new URL(link.url);
  const targetToken = urlInstance.searchParams.get('token');
  // 后续执行token对应的业务逻辑即可
};

3. Firebase后台规则确认

你无需修改原有匹配规则,只要后台配置的深度链接可以匹配到https://letssin.app/invite路径即可,查询参数会被自动完整保留。


方案二(保留路径参数形式):调整Firebase匹配规则

如果你要继续使用路径后缀的形式传递token,只要修改Firebase动态链接的匹配规则即可:

  1. 进入Firebase控制台 → 动态链接 → 找到对应letssin.app的深度链接配置项
  2. 将路径匹配规则从「精确匹配」改为「前缀匹配」,匹配值填写/invite,修改后路径后缀的token会被完整保留

额外检查项

  • 确认iOS工程Associated Domains配置已添加applinks:letssin.page.link和applinks:letssin.app
  • 确认Android工程AndroidManifest.xml中对应跳转Activity已配置正确的deep link intent-filter,能匹配https://letssin.app/invite相关路径
  • 你当前使用的12.8.0版本@react-native-firebase/dynamic-links存在已知的参数解析小bug,调整配置后仍不生效可以升级到12.9.3以上的12.x稳定版本即可。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:54:00