React Native接入Firebase Google登录提示请提供正确client ID如何解决?
错误提示
Please provide the appropriate client ID(请提供正确的客户端ID)
前置操作说明
你已经完成了以下配置步骤:
- 创建Firebase项目,分别完成Android、iOS两端应用创建
- Android端下载对应.json配置文件,构建APK后通过
expo fetch:android:hashes命令获取了Google证书SHA-256指纹,并填入Google应用对应配置项 - iOS端下载了对应.plist配置文件
现有代码
认证逻辑代码
const config = { androidClientId: "// 从google json文件的client_id字段取值", iosClientId: "// 从google plist文件的对应字符串字段取值", scopes: ["profile", "email"], permissions: ["public_profile", "email", "gender", "location"], }; export const AuthProvider = ({ children }) => { const signInWithGoogle = async () => { await Google.logInAsync(config).then(async (loginResults) => { if (loginResults.type === "success") { // 登录成功后续逻辑 } }); }; return ( <AuthContext.Provider value={{ user: null, signInWithGoogle, }} > {children} </AuthContext.Provider> ); }; export default function useAuth() { return useContext(AuthContext); }
App.js调用代码
const { signInWithGoogle } = useAuth(); return ( <View> <Button title="Login" onPress={signInWithGoogle} /> </View> );
问题现象
点击登录按钮后未弹出Google授权弹窗,仅输出上述客户端ID相关错误。
解决方案
按以下顺序逐一排查即可解决问题:
- 确认客户端ID取值正确:Android端需取google-services.json中
client_type为3对应的client_id值,不要误取web端或其他类型的ID;iOS端需取GoogleService-Info.plist中CLIENT_ID字段的完整值,不要遗漏后缀内容 - 补充Expo调试所需配置:如果当前是用Expo Go做开发调试,需要在config中额外添加
expoClientId字段,值为Firebase控制台中Web客户端的ID,否则调试阶段会识别不到有效客户端ID - 核对包名和签名配置:Android端Firebase控制台填写的包名、SHA-256指纹要和构建APK用的包名、实际获取的指纹完全匹配,不能有大小写、空格偏差;iOS端包名也要和plist文件、Xcode配置的包名完全一致
- 检查参数拼写:确认
Google.logInAsync传入的config对象中,androidClientId、iosClientId字段拼写完全正确,没有大小写错误
内容的提问来源于stack exchange,提问作者n9p4
相关产品推荐
相关产品推荐

