Firebase无密码登录动态链接被拦截问题求助
排查React Native Firebase无密码登录动态链接拦截问题
以下是针对你遇到的“无效动态链接 - 被拦截”问题的具体排查方向和修复建议:
1. 修正actionCodeSettings中的url参数
你当前填写的是Firebase动态链接的短链接(https://MYPROJECT.page.link/M3bd),这是错误的配置方式。url参数应该填写你的应用可处理的深层链接(如myapp://email-signin)或已授权的Web回退URL(如https://your-custom-domain.com/auth/callback),而非动态链接的短地址。
正确配置示例:
const actionCodeSettings = { handleCodeInApp: true, url: 'https://your-custom-domain.com/auth/callback', // 替换为你的授权回退URL或深层链接 iOS: { bundleId: BUNDLE_ID, }, android: { packageName: BUNDLE_ID, installApp: true, minimumVersion: '12', }, };
2. 检查Auth授权域名的完整性
前往Firebase控制台→Authentication→登录方法→授权域名,确保添加了以下内容:
- 你在
actionCodeSettings中填写的url对应的完整域名(包含http://或https://,注意大小写和斜杠) - 动态链接的根域名(如
MYPROJECT.page.link,无需加路径) - 错误提示中给出的完整拦截URL(复制粘贴避免拼写错误)
3. 验证动态链接域名状态
前往Firebase控制台→动态链接,查看你使用的域名(MYPROJECT.page.link)是否显示为已验证。若未验证,按照控制台提示完成域名验证步骤(添加DNS记录或上传验证文件)。
4. 确认Android App Links配置
- 确保
assetlinks.json文件已正确部署到你Web域名的.well-known目录下,文件内容需包含你的应用packageName和正确的SHA-256指纹(可在Firebase控制台→项目设置→应用→Android应用中查看) - 在Firebase控制台的Android应用设置中,确认已勾选“启用App Links”
5. 确认iOS Universal Links配置
- 在Xcode中,为你的应用添加关联域名权限(
Signing & Capabilities→Associated Domains),添加applinks:MYPROJECT.page.link - 确保
apple-app-site-association文件已部署到你Web域名的根目录或.well-known目录,且内容与Firebase配置一致
6. 检查深层链接的处理逻辑
确保你的React Native应用已正确配置深层链接处理(使用react-native-firebase/auth的isSignInWithEmailLink方法检测链接,并调用signInWithEmailLink完成登录),避免因应用无法处理链接导致跳转到Web页面触发拦截。
内容的提问来源于stack exchange,提问作者seth8656
相关产品推荐
相关产品推荐

