Firebase Dynamic Links忽略额外查询参数问题求助
解决Firebase Dynamic Links生成短链接时查询参数丢失的问题
问题根源
直接拼接长链接时,原链接中的&会被Firebase Dynamic Links API解析为自身参数的分隔符,导致params2、params3被误识别为API的未知参数(触发UNRECOGNIZED_PARAM警告),最终原链接只保留第一个查询参数之前的内容。
解决方案
方案1:对原链接进行URL编码
使用encodeURIComponent对完整的原长链接进行编码,确保特殊字符(?、&等)被转义,API会将编码后的字符串完整识别为link参数的值:
const originalLongLink = 'https://example.com/p/h2b883?params1=value¶ms2=value¶ms3=225555'; httpService .post(process.env.DYNAMIC_LINK_API, { longDynamicLink: `https://domain.page.link/?link=${encodeURIComponent(originalLongLink)}`, }) .toPromise() .then((res) => { return res.data.shortLink; })
方案2:使用结构化参数dynamicLinkInfo
改用Firebase API推荐的dynamicLinkInfo结构传递参数,无需手动编码,更清晰且避免参数冲突:
httpService .post(process.env.DYNAMIC_LINK_API, { dynamicLinkInfo: { domainUriPrefix: 'https://domain.page.link', link: 'https://example.com/p/h2b883?params1=value¶ms2=value¶ms3=225555' } }) .toPromise() .then((res) => { return res.data.shortLink; })
内容的提问来源于stack exchange,提问作者ben ftima wajdi
相关产品推荐
相关产品推荐

