Flutter集成Firebase:FirebaseAuth类未定义signInWithFacebook方法问题
解决FirebaseAuth中signInWithFacebook未定义的问题
这个问题是因为你使用的firebase_auth: ^0.14.0+5版本已经移除了signInWithFacebook()这个直接方法,官方在这个版本里统一了第三方登录的实现方式,改用Auth凭证+通用登录方法的模式。
你只需要修改你的登录代码,用FacebookAuthProvider创建认证凭证,再调用signInWithCredential完成登录即可,修改后的代码如下:
FirebaseAuth _auth = FirebaseAuth.instance; bool isLogged = false; FirebaseUser myUser; Future<FirebaseUser> _loginWithFacebook() async { var facebookLogin = FacebookLogin(); var result = await facebookLogin.logInWithReadPermissions(['email']); debugPrint(result.status.toString()); if (result.status == FacebookLoginStatus.loggedIn) { // 基于Facebook的accessToken创建Firebase认证凭证 final FacebookAuthCredential facebookCredential = FacebookAuthProvider.getCredential( accessToken: result.accessToken.token, ); // 使用凭证完成Firebase登录 FirebaseUser user = await _auth.signInWithCredential(facebookCredential); return user; } return null; }
另外需要注意:
- 确保你已经完成了
flutter_facebook_login的平台配置工作(比如Android端的strings.xml配置、iOS端的Info.plist配置),否则可能会出现登录失败的情况。 - 这个版本的
firebase_auth对所有第三方登录(Google、Twitter等)都采用了相同的模式,都是先获取对应平台的认证信息,创建对应的AuthCredential,再调用signInWithCredential,这样的设计让登录逻辑更统一。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

