Flutter Flatter-如何使用Firebase facebook和google插件链接社交帐户
我有一个颤振的应用程序,并希望用户与FB和谷歌认证。我不想多个帐户,只是一个单一的帐户,链接这两个 我正在使用: firebase_auth 0.15.1 谷歌4.0.14中的签名 facebook_插件3.0.0 当用户的帐户已存在于其他提供商时,我无法获取该用户的电子邮件地址。为了使用API调用“FetchSigningMethodsForemail”获取该用户的提供者列表,需要该电子邮件 以下是一个例子: 1:使用Google凭据进行用户登录。该帐户是在firebase中创建的,并链接到google 2:用户现在注销 3:用户现在尝试使用相同的电子邮件登录FB --用户获得以下错误Flutter Flatter-如何使用Firebase facebook和google插件链接社交帐户,flutter,flutter-plugin,Flutter,Flutter Plugin,我有一个颤振的应用程序,并希望用户与FB和谷歌认证。我不想多个帐户,只是一个单一的帐户,链接这两个 我正在使用: firebase_auth 0.15.1 谷歌4.0.14中的签名 facebook_插件3.0.0 当用户的帐户已存在于其他提供商时,我无法获取该用户的电子邮件地址。为了使用API调用“FetchSigningMethodsForemail”获取该用户的提供者列表,需要该电子邮件 以下是一个例子: 1:使用Google凭据进行用户登录。该帐户是在firebase中创建的,并链接到g
code:"ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL"
details: null
message: "An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address., **null**))
如您所见,电子邮件为空。我需要这封电子邮件,以便获得提供商列表。然后我可以将用户重定向到正确的提供者
下面是我的代码片段
Future<FirebaseUser> signInWithFacebook({bool isIos}) async {
AuthCredential credential;
try {
final FacebookLoginResult result = await facebookLogin.logIn(['email']);
if (result.accessToken != null) {
credential = FacebookAuthProvider.getCredential(
accessToken: result.accessToken.token
);
AuthResult authResult = await _firebaseAuth.signInWithCredential(
credential,
);
firebaseUser = authResult.user;
return firebaseUser;
} catch (e) {
throw Exception(e);
}
return null;
}
未来登录与Facebook({bool isIos})异步{
认证证书;
试一试{
最终FacebookLoginResult结果=等待facebookLogin.logIn(['email']);
if(result.accessToken!=null){
credential=FacebookAuthProvider.getCredential(
accessToken:result.accessToken.token
);
AuthResult AuthResult=等待_firebaseAuth.signiWithCredential(
资质
);
firebaseUser=authResult.user;
返回firebaseUser;
}捕获(e){
抛出异常(e);
}
返回null;
}
谢谢你的帮助