如何迁移Firebase邮箱链接认证以弃用Dynamic Links
Firebase邮箱链接认证迁移问题解答
问题梳理
你正在迁移Firebase邮箱链接认证以弃用Dynamic Links,已完成:
- 修改Android的intent-filter,使用
APP_ID.firebaseapp.com替代旧的.page.linkURL - 在
actionCodeSettings中添加linkDomain = "${APP_ID}.firebaseapp.com"配置
但遇到核心问题:
- 迁移指南步骤2要求用Admin SDK配置项目,但Go版Admin SDK没有
ProjectConfigManager,无法直接转译示例代码 - Node.js示例缺乏上下文,不清楚如何调用
updateProjectConfig函数 - 目前邮件链接仍用
.page.link,靠重定向正常工作,但担心8月25日后失效
解决方案
1. Go版Admin SDK无ProjectConfigManager的替代方案
Firebase Admin SDK的Go版本目前未提供项目配置管理的相关API,你可以选择以下两种方式完成配置:
- 临时使用Node.js脚本执行一次性配置:这是最简便的方式,因为项目配置更新是一次性操作,不需要集成到你的Go后端服务中。
- 调用Firebase REST API:直接向
https://firebase.googleapis.com/v1beta1/projects/{你的项目ID}/config发送PUT请求,请求体格式如下:
请求需要用服务账号密钥生成OAuth2令牌进行授权。{ "mobileLinksConfig": { "domain": "你的APP_ID.firebaseapp.com" } }
2. Node.js示例的完整上下文
指南中的代码片段是一次性执行的脚本,不需要作为回调传递。完整可运行的Node.js脚本如下:
const admin = require('firebase-admin'); // 替换为你的服务账号密钥路径 const serviceAccount = require('./service-account-key.json'); // 初始化Admin SDK admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); // 获取项目配置管理器实例 const projectConfigManager = admin.projectConfig(); const updateRequest = { mobileLinksConfig: { domain: '你的APP_ID.firebaseapp.com' } }; // 定义并执行更新函数 const updateProjectConfig = async () => { try { const response = await projectConfigManager.updateProjectConfig(updateRequest); console.log('项目配置更新成功:', response); } catch (error) { console.error('更新项目配置失败:', error); } }; // 直接调用执行 updateProjectConfig();
运行该脚本前,确保已安装firebase-admin依赖(npm install firebase-admin),执行一次即可完成项目配置。
3. 关于.page.link重定向的风险
目前的重定向是Dynamic Links的兼容过渡行为,但8月25日后Dynamic Links服务正式停止,.page.link域名将无法正常解析,必须完成步骤2的配置,让Firebase直接生成firebaseapp.com域名的邮箱验证链接,避免服务中断。
内容的提问来源于stack exchange,提问作者realh
相关产品推荐
相关产品推荐

