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

本地使用Firebase Auth激活链接遇auth/invalid-dynamic-link-domain错误

错误原因

你填的dynamicLinkDomain是本地HTTP地址,这不符合Firebase的要求——动态链接域名必须是Firebase项目中已配置的合法域名,要么是Firebase提供的默认域名(格式如xxx.page.link),要么是你自己验证过的自定义域名,本地IP+端口的地址不被Firebase认可。

解决方案

方案1:使用Firebase提供的默认动态链接域名

  1. 打开Firebase控制台,进入你的项目,找到「动态链接」模块
  2. 复制控制台里显示的默认动态链接域名(比如your-project.page.link)
  3. 替换你配置中的dynamicLinkDomain值,同时修正原代码里的语法错误(android.packageName后缺少逗号):
const actionCodeSettings = {
  url: 'exp://192.168.18.30:19001',
  handleCodeInApp: true,
  iOS: {
    bundleId: 'xxx.xxx.xxx'
  },
  android: {
    packageName: 'xxx.xxx.xxx',
    installApp: true,
    minimumVersion: '12'
  },
  dynamicLinkDomain: 'your-project.page.link' // 替换为你的Firebase动态链接域名
};

这样Firebase会把你的本地Expo地址包装成合法的动态链接,邮件中的链接会正常跳转到你的本地应用。

方案2:本地测试时禁用App内处理(仅适用于不需要在App内处理链接的场景)

如果只是简单测试邮件发送,不需要在App内直接处理激活链接,可以把handleCodeInApp设为false,此时可以省略dynamicLinkDomain参数:

const actionCodeSettings = {
  url: 'exp://192.168.18.30:19001',
  handleCodeInApp: false,
  iOS: {
    bundleId: 'xxx.xxx.xxx'
  },
  android: {
    packageName: 'xxx.xxx.xxx',
    installApp: true,
    minimumVersion: '12'
  }
};

补充说明

动态链接的作用是把自定义的跳转地址(比如你的本地Expo地址)包装成Firebase认可的域名链接,同时实现跨平台的跳转逻辑(比如判断用户是否安装App,引导安装或直接跳转),所以必须使用Firebase配置过的域名才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:55:56