React Native集成Firebase谷歌认证遇Error 400: redirect_uri_mismatch求助
React Native Firebase谷歌认证 Error 400: redirect_uri_mismatch 解决办法
问题说明
遇到的错误提示:
Access blocked: This app’s request is invalid, Google Auth error
无法登录,因为此应用发送了无效请求。您可稍后重试,或联系开发者咨询此问题。了解更多错误信息
若您是此应用开发者,请查看错误详情。
Error 400: redirect_uri_mismatch
已完成Firebase项目连接,添加了Android和Web应用,相关代码如下:
const [user, setUser] = useState(null); const [request, response, promptAsync] = Google.useAuthRequest({ webClientId: 'Not adding here', androidClientId: 'Not adding here', // androidClientId:"xd", }); useEffect(() => { if (response?.type === 'success') { const { id_token, access_token } = response.params; const credential = GoogleAuthProvider.credential(id_token, access_token); signInWithCredential(auth, credential) .then(result => { console.log(result); }) .catch(error => { console.log(error); }); } `your text`; }, [response]);
解决步骤
1. 核对Google Cloud Console的重定向URI
- 打开Google Cloud Console,找到你的项目,进入「API和服务」→「凭据」页面
- 找到对应Android客户端ID的条目,查看「已授权的重定向URI」列表
- 必须包含
com.googleusercontent.apps.[你的Web Client ID]:/oauth2redirect/google(把[你的Web Client ID]换成实际值) - 同时检查Web应用的凭据,确保已授权的重定向URI包含开发环境的
http://localhost:8081(生产环境换成你的正式域名)
2. 确认Firebase应用配置
- 进入Firebase控制台,打开项目→「Authentication」→「登录方法」→「Google」
- 验证「Web SDK配置」里的客户端ID和代码中
webClientId完全一致 - 检查Android应用的签名指纹:运行
./gradlew signingReport获取SHA-1和SHA-256,确保已经添加到Firebase Android应用的设置里
3. 代码调整
- 保证
Google.useAuthRequest中的客户端ID正确无误,不需要同时传web和android ID时,可根据平台做区分(比如用Platform.select) - 删掉代码里的无效注释(比如
// androidClientId:"xd"),避免潜在干扰 - 确认
auth是正确初始化的Firebase Auth实例
4. 清除缓存后重试
- 卸载重装应用,清除应用缓存和数据
- 清除浏览器缓存(如果涉及Web认证流程)
- 重启Metro服务,重新构建项目
额外排查项
- 用Expo开发的话,检查
app.json中的scheme是否为com.googleusercontent.apps.[你的Web Client ID],要和重定向URI匹配 - 确认Google Cloud Console中已经启用「Google Identity API」
内容的提问来源于stack exchange,提问作者Arya
相关产品推荐
相关产品推荐

