Unity使用Firebase创建短动态链接抛出400域名归属错误
针对你遇到的「长动态链接正常创建,但调用GetShortLinkAsync生成短链接时报400错误,提示项目不拥有指定域名」的问题,可按以下步骤排查解决:
核对长链接的域名前缀
确认components.LongDynamicLink里使用的域名前缀和Firebase控制台中配置的完全一致,包括大小写、是否带https://(比如控制台是https://example.page.link,长链接里不能写成http://example.page.link或者Example.page.link)。确认Firebase项目一致性
检查代码中初始化Firebase的配置文件(Android的google-services.json、iOS的GoogleService-Info.plist)是否对应你配置域名的那个项目,确保项目ID、API密钥等信息完全匹配。如果是后端服务调用,确认使用的服务账号属于目标Firebase项目。重新验证域名状态
回到Firebase控制台的「动态链接」设置页面,确认域名前缀旁边的状态是「已验证」。如果状态异常,重新走一遍验证流程(DNS解析或HTML文件验证),等待验证状态更新后再测试。检查ShortDynamicLinkOptions配置
查看你传入的options参数,确认DomainUriPrefix是否设置为控制台中已验证的域名。如果未设置该属性,Firebase可能会默认使用错误的前缀,导致报错。示例配置:var options = new ShortDynamicLinkOptions { DomainUriPrefix = "https://example.page.link" };等待配置同步
Firebase的域名配置可能需要10-15分钟才能同步到全球所有服务器,如果你刚完成域名配置或修改,等待一段时间后再重试。排查权限问题
如果是后端服务调用,确认使用的服务账号已启用「Firebase Dynamic Links API」权限;如果是客户端调用,检查google-services.json中的API密钥是否未被限制IP或禁用Dynamic Links相关功能。
内容的提问来源于stack exchange,提问作者Suraj Kumar

