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

Flutter中Firebase动态链接读取参数异常问题

Firebase动态链接参数丢失解决办法

问题原因

你直接在Firebase短链接后拼接?id=ABCDEFG的方式不被官方支持,Firebase动态链接的参数需要配置在**深层链接(Deep Link)**中,而非短链接本身。短链接只是跳转入口,真正的参数逻辑绑定在深层链接里。

正确解决方案

1. 重新生成带参数的动态链接

不管是通过Firebase控制台还是代码创建,都要把参数放到深层链接中:

  • 控制台创建:在「深层链接」输入框填写带参数的链接(比如https://yourapp.com/r?id=ABCDEFG),再生成短链接。
  • 代码创建:设置DynamicLinkParameters的link字段为带参数的深层链接,示例:
    final dynamicLinkParams = DynamicLinkParameters(
      uriPrefix: 'https://xyz.page.link',
      link: Uri.parse('https://yourapp.com/r?id=ABCDEFG'), // 这里放带参数的深层链接
      androidParameters: const AndroidParameters(
        packageName: 'com.your.app.package', // 替换成你的安卓包名
      ),
      iosParameters: const IOSParameters(
        bundleId: 'com.your.app.bundle', // 替换成你的iOS Bundle ID
      ),
    );
    final shortLink = await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
    print(shortLink.shortUrl); // 生成的有效短链接
    

2. 正确读取参数

不要直接把data.link转成字符串拆分,直接通过Uri的queryParameters获取参数:

PendingDynamicLinkData? data = await FirebaseDynamicLinks.instance.getInitialLink();
if (data != null) {
  Uri deepLink = data.link;
  String? id = deepLink.queryParameters['id']; // 直接拿到ABCDEFG
  print(id);
}

3. 额外排查点

  • 确认深层链接的域名已在Firebase控制台「动态链接」设置中完成验证。
  • 测试时不要直接手动修改短链接,必须使用官方生成的包含深层链接参数的短链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:44:57