未为类型“ FirebaseAuth”定义“ signInWithGoogle”

时间:2020-06-04 20:38:04

标签: firebase flutter firebase-authentication

我正在尝试将Google登录信息添加到我的flutter应用程序中,但是googleSignIn方法说: 未为类型“ FirebaseAuth”定义“ signInWithGoogle”。 这是我的代码

Future<FirebaseUser> handleSignIn() async{
      preferences = await SharedPreferences.getInstance();
      setState(() {
      loading = true;
          });
      GoogleSignInAccount googleUser = await googleSignIn.signIn();
      GoogleSignInAuthentication googleSignInAuthentication = await googleUser.authentication;
      FirebaseUser  firebaseUser = await firebaseAuth.signInWithGoogle(
        idToken: googleSignInAuthentication.idToken,
        accessToken: googleSignInAuthentication.accessToken
      );


  }

1 个答案:

答案 0 :(得分:0)

查看似乎正确的文档here。 FirebaseAuth class doesn't have a signInWithGoogle`。

您是否正在寻找signInWithCredential

FlutterFire存储库中的example显示了如何将其用于Google登录:

  void _signInWithGoogle() async {
    final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
    final GoogleSignInAuthentication googleAuth =
        await googleUser.authentication;
    final AuthCredential credential = GoogleAuthProvider.getCredential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );
    final FirebaseUser user =
        (await _auth.signInWithCredential(credential)).user;
    assert(user.email != null);
    assert(user.displayName != null);
    assert(!user.isAnonymous);
    assert(await user.getIdToken() != null);

   final FirebaseUser currentUser = await _auth.currentUser();
    assert(user.uid == currentUser.uid);
    setState(() {
      if (user != null) {
        _success = true;
        _userID = user.uid;
      } else {
        _success = false;
      }
    });
  }
}