You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:04:52