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

Firebase控制台动态链接追加用户参数及REST API 401错误咨询

问题1解答

仅追加用户ID作为参数的场景下,你完全可以直接使用控制台预先创建的动态链接拼接参数,无需通过REST API编程生成链接。
你只需要满足两个前提即可:

  • 控制台创建动态链接时用到的原始跳转域名,已经加入Firebase动态链接的允许域名白名单
  • 拼接参数时对参数值做正确的URL编码,避免特殊字符导致解析异常,比如用户ID包含特殊符号时,用encodeURIComponent处理后再拼接
    实际使用示例:你控制台生成的短链为https://dl.mydomain.com/link/xxxx,直接拼接为https://dl.mydomain.com/link/xxxx?inviterId=用户A的ID即可,用户点击链接拉起应用后,你直接解析动态链接就能拿到对应的inviterId参数。
问题2解答

Postman可以正常请求,Expo应用内请求返回401,通常是以下几个原因导致的:

  1. API Key配置问题
    检查Expo侧请求的完整URL,确认key=后的值和Firebase控制台拿到的Web API Key完全一致,没有多余的空格、转义字符或者拼写错误。
  2. API Key访问限制问题
    你可以登录Google Cloud控制台,进入「API和服务 - 凭据」页面,找到你正在使用的Web API Key,检查它的访问限制规则:
  • 如果设置了HTTP referrer限制,需要把Expo开发环境的地址比如http://localhost:*、exp://*加入允许列表
  • 如果设置了Android/iOS应用限制,需要确认Expo开发环境使用的包名、Bundle ID和限制规则里的配置完全一致
    开发测试阶段可以先暂时关闭所有限制,验证请求是否能正常返回,确认是限制规则问题后再做精细化配置。
  1. 请求头配置错误
    确认你发起POST请求时,已经正确设置Content-Type: application/json请求头,没有携带多余的、无效的Authorization字段。参考正确的请求写法:
const requestUrl = 'https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=替换为你的WebAPIKey'
const requestRes = await fetch(requestUrl, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "dynamicLinkInfo": {
      "domainUriPrefix": "https://dl.mydomain.com/link",
      "link": "https://dl.mydomain.com/link?id=12345",
      "androidInfo": {
        "androidPackageName": "com.my-domain.myapp"
      },
      "iosInfo": {
        "iosBundleId": "com.my-domain.myapp"
      }
    }
  })
})

另外如果你的需求只是传递用户ID参数,更推荐直接使用控制台生成的链接拼接参数的方案,实现成本更低,也不会遇到API请求的权限问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:54:04