当前位置: 首页 > 知识库问答 >
问题:

奇怪错误:flutter fire base facebook登录结果为空电子邮件,并在Firebase控制台中注册_。现在该怎么办?

单修德
2023-03-14

我在firebase flutter facebook登录中工作时出现了一个奇怪的错误。它总是导致空电子邮件。当我看到firebase控制台时,电子邮件字段正在向_注册
我已在StackOverflow上搜索以找出此错误,但未能成功。我已经按照facebook帐户iOS设置中的步骤进行了操作。有什么可能的原因?

如果我尝试使用facebook登录,这会显示“你以前使用facebook帐户登录过此应用”,尽管我以前从未登录过……帮帮我吧。我为这个问题奋斗了10多天!!!

  // Sign in with Facebook.
static Future<Map<String, dynamic>> signInWithFacebook({bool isSignUp}) async {
  try {      
    await signOutFacebook();
    UserCredential userCredential;  
    // Trigger the sign-in flow
    List<String> permissions = ['email', 'public_profile'];
    final LoginResult loginResult = await FacebookAuth.instance.login(permissions: permissions);
    // Create a credential from the access token
    final OAuthCredential facebookAuthCredential = 
    FacebookAuthProvider.credential(loginResult.accessToken.token);
    // Once signed in, return the UserCredential
    userCredential = await FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
    final User user = userCredential.user;      
    print("User info after facebook login ${user.providerData[0].email} ${user.uid}");
    // ************************************** This is showing null email ***** //
    if (isSignUp) {
      Map<String, dynamic> resultOfSaveSocialUserToDatabase = await saveSocialUserToDatabase(user, 'facebook');
      return resultOfSaveSocialUserToDatabase;
    } else {
      Map<String, dynamic> resultOfValidateSocialLogin = await validateSocialLogin(user, 'facebook');
      return resultOfValidateSocialLogin;
    }      
  } catch (e) {
    print(e);
    return {'success': false, 'message': "Sign up with social account failed"};
  }
}  

共有2个答案

东方华荣
2023-03-14

当用户第一次使用他的FB帐户登录时选择不共享他的电子邮件时,也会发生这种情况。

乜璞瑜
2023-03-14

发生这种情况的原因是您可能使用电话号码而不是电子邮件创建了您的facebook帐户。

所以,结果是一个空的电子邮件地址作为一个空的标识符。

您可以尝试使用不同的fb帐户,该帐户可能使用电子邮件地址而不是电话号码创建。

 类似资料:
  • 我正在使用Apple sign in将用户登录到我的应用程序,然后在Firebase上进行身份验证。现在,有时用户不分享他们的电子邮件,在这种情况下,苹果提供了一个虚构的电子邮件。登录后,am通过先用Firebase验证,将电子邮件存储在数据库中。我更新虚构的电子邮件与一个真实的首先在firebase,然后发送验证电子邮件。在firebase上更新主电子邮件后,用户是否可以再次登录苹果,因为苹果仍

  • null 我需要重新验证用户,最好的方法是什么?在用户登录后,如何切换的状态? 谢谢

  • 我试图定制firebase的电子邮件验证模板,这样当用户订阅时,电子邮件验证就会发送给他,当他点击验证链接时,应用程序就会打开,并处理验证过程的结束。我正在为我的后端使用firebase。因此,当我通过以下方式更改默认验证URL时:

  • 在用户注册Firebase之前,我应该如何验证电子邮件地址?我知道电子邮件地址已通过,但这仅适用于当前用户。因此,必须在发送验证电子邮件之前创建用户。这不会有多大帮助,因为您显然必须在将电子邮件添加到数据库之前验证它。因此,什么是好的解决方法?

  • 刚开始使用Ruby,我无法通过下面发布的错误。这是我的代码: 控制台中的错误: C: /Ruby23/lib/ruby/2.3.0/net/http。rb:933:inconnect来自C:/Ruby23/lib/ruby/2.3.0/net/http。rb:863:instart'来自C:/Ruby23/lib/ruby/2.3.0/net/http。rb:1398:inperform'来自C:

  • 当我第一次使用谷歌帐户登录,然后使用帐户登录时,Firbase返回“ERROR _ Account _ EXISTS _ WITH _ DIFFERENT _ CREDENTIAL ”,这是正确的,因为我从firebase控制台禁用了签署多凭据选项。 当我第一次使用帐户登录时出现问题。提供商是正确的,UserInfo显示facebook用户帐户信息。但是电子邮件没有被验证。 当我登录谷歌账户时,出