首页 > 解决方案 > 解决我的 Flutter Facebook 登录/登录错误

问题描述

我正在尝试在我的应用程序上实现 facebook 登录/登录,但我不断收到这个 facebook 错误。有什么我做错了吗?也许有人可以帮忙。

我已经尽我所能来解决这个问题,但似乎没有任何效果。即使这意味着重构我的代码。

我得到的错误

在此处输入图像描述

我的代码:

class _LoginState extends State<Login> {
  User myUser;
  bool isLoggedIn = false;
  AuthenticationService auth = AuthenticationService();

  void login() {
    auth.facebookSignIn().then((response) {
      if (response != null) {
        isLoggedIn = true;
        myUser = response;
        setState(() {});
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    final validationService = Provider.of<SigninModel>(context);

    return Scaffold(
        body: SafeArea(
      child: SingleChildScrollView(
        child: Padding(
          padding: const EdgeInsets.only(left: 30.0, right: 30.0, top: 10.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              _buildHeader(context),
              SizedBox(height: 25),
              Container(
                child: isLoggedIn
                    ? Container(
                      child: Text(myUser.displayName),
                    )
                    : CustomLoginGF(
                        onTap: () {
                          AuthenticationService().facebookSignIn();
                        },
                        title: 'Sign in with Facebook',
                        width: 20.0,
                        images: 'assets/images/facebook.png',
                        heights: 20.0,
                        style: GoogleFonts.workSans(
                          fontSize: 16,
                          fontWeight: FontWeight.w500,
                          color: Colors.black,
                        ),
                      ),
              ),
}

验证

final _facebookLogin = FacebookLogin();
  Future<User> facebookSignIn() async {
    try {
      final result = await _facebookLogin.logInWithReadPermissions(['email']);
      print('facebook login access token: ${result.accessToken}');
      print('facebook login error message: ${result.errorMessage}');
      print('facebook login status: ${result.status}');
      switch (result.status) {
        case FacebookLoginStatus.loggedIn:
          print(result.accessToken.token);
          break;
        case FacebookLoginStatus.cancelledByUser:
          print('CANCELED BY USER');
          break;
        case FacebookLoginStatus.error:
          print(result.errorMessage);
          break;
      }
      if (result.status == FacebookLoginStatus.loggedIn) {
        print('facebook login result status: ${result.status}');
        print('facebook login result: ${result.toString()}');
        final AuthCredential credential =
            FacebookAuthProvider.credential(result.accessToken.token);

        UserCredential userCredential =
            await firebaseAuth.signInWithCredential(credential);
        print('user credential: ${userCredential.user.displayName}');
        return userCredential.user;
      }
      return null;
    } on FirebaseAuthException catch (e) {
      print('facebook error: ${e.message}');
      return null;
    }
  }

标签: flutterdart

解决方案


推荐阅读