Flutter iOS端Firebase谷歌登录遇SignInWithIdp被拦截问题求助
解决Flutter Firebase iOS端Google登录403错误(SignInWithIdp被阻止)
核心问题定位
错误信息API_KEY_SERVICE_BLOCKED和Requests to this API identitytoolkit method... are blocked明确指向:
- 项目未启用Identity Toolkit API
- 或使用的API密钥被限制,无法调用该API
具体解决步骤
1. 启用Identity Toolkit API
- 打开Google Cloud控制台,选择你的Firebase关联项目
- 在顶部搜索栏输入
Identity Toolkit API,进入API详情页 - 点击页面中的启用按钮,等待1-2分钟让配置同步
2. 检查并更新API密钥的服务限制
- 进入Google Cloud控制台的API和服务 > 凭据页面
- 找到对应项目的API密钥(可对照
GoogleService-Info.plist中的API_KEY字段确认) - 点击该密钥的编辑按钮,滚动到API限制部分:
- 如果选择了
限制密钥,确保在允许的API列表中添加了Identity Toolkit API - 若未添加,点击添加API,搜索并选中该API后保存
- 如果选择了
3. 额外验证步骤
- 确认Firebase控制台Authentication > 登录方法中,Google登录已针对iOS平台启用
- 重新下载最新的
GoogleService-Info.plist,替换Xcode项目中的旧文件 - 清理Xcode项目缓存(
Cmd+Shift+K)并重新编译运行
为什么这能解决问题
Firebase Authentication的Google登录依赖Identity Toolkit API完成SignInWithIdp流程,若API未启用或密钥被限制调用该API,就会返回403权限拒绝错误。Android端正常是因为可能使用了不同的密钥配置,或项目在Android端的API权限已默认开通。
内容的提问来源于stack exchange,提问作者Clément Cardonnel
相关产品推荐
相关产品推荐

