Flutter用Firebase Firestore创建邮箱密码用户遇API密钥无效问题
Flutter Firebase邮箱密码注册/登录API Key无效问题解决
问题核心
错误日志明确提示「API key not valid. Please pass a valid API key.」,说明Firebase项目与Flutter应用的API密钥配置不匹配,或密钥本身存在限制/错误,导致注册、登录流程触发reCAPTCHA验证时失败。
解决步骤
核对Firebase控制台的API密钥
打开Firebase控制台进入你的项目,点击左侧齿轮图标选择「项目设置」,在「常规」标签页的「您的应用」板块,找到对应平台(Android/iOS/Web)的apiKey值,复制备用。验证Flutter项目配置文件
- Android:检查
android/app/google-services.json中的api_key字段,确认与控制台的apiKey完全一致 - iOS:检查
ios/Runner/GoogleService-Info.plist中的API_KEY值,确保无拼写错误 - Web:检查
web/index.html中Firebase初始化脚本里的apiKey参数,是否和控制台匹配
- Android:检查
检查API密钥的限制设置
在Firebase控制台「项目设置」→「服务帐户」→「API密钥」,找到对应密钥:- 如果设置了应用限制(如仅允许特定包名、域名),确认你的应用符合限制条件
- 测试阶段可暂时取消限制,验证问题是否解决(测试完成后务必重新添加限制保障安全)
清理缓存并重建项目
执行以下命令确保配置生效:flutter clean flutter run
代码优化提示
你的注册方法中await与then嵌套使用,可简化为更清晰的try-catch结构,同时补全参数类型:
Future<void> userRegister({ required String email, required String password, required String phone, // 补全参数类型 required String name, }) async { emit(socialRegisterLoadingState()); try { final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword( email: email, password: password, ); // 可在此添加将name、phone写入Firestore的逻辑 emit(socialRegisterSuccesState()); } catch (error) { emit(socialRegisterErrorState(error.toString())); } }
内容的提问来源于stack exchange,提问作者AR ZIRO
相关产品推荐
相关产品推荐

