如何解决为什么我无法将电子邮件/密码链接到Firebase Flutter中的Google登录提供程序中存在的同一电子邮件?
我曾与Google登录以及Firebase身份验证的电子邮件/密码提供者合作,我注意到在与电子邮件/密码提供者进行注册后,我会使用相同的电子邮件与google_sign_in提供者进行登录并在注册电子邮件后也注销,因此我可以以authscreen的身份登录,但是当我在使用google_sign_in并从Google注销并尝试对其进行注册后尝试使用另一个帐户进行反向操作时,给我错误电子邮件存在,当我尝试登录时给我错误密码错误,甚至还以为我写了100%正确的Google电子邮件密码,因此有一种方法可以签名
here is photo the error shown in snackbar of login
and here is sign up error
and this is the two emails in firebase auth
choice_provier_screen的代码
// Override rule "selected" by "listItemSelected"
<ListItem classes={{selected: listItemSelected}}>
<ListItemText primary={"Hi"} />
</ListItem>
登录/登录代码
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/tabs.dart';
import './signInOrLogIn_Screen.dart';
import 'package:google_sign_in/google_sign_in.dart';
Future<UserCredential> signinWithGoogle() async {
final GoogleSignInAccount googleuser = await GoogleSignIn().signIn();
final GoogleSignInAuthentication googleauth = await googleuser.authentication;
final GoogleAuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleauth.accessToken,idToken: googleauth.idToken,);
return await FirebaseAuth.instance.signInWithCredential(credential);
}
Widget createRaised(
{Color backgroundcolor,String image,String name,Color textcolor,Function f}) {
return SizedBox(
width: 290,child: RaisedButton.icon(
onPressed: f,label: Text(
name,style: TextStyle(fontSize: 18,color: textcolor),),icon: Padding(
padding: const EdgeInsets.only(right: 10),child: Image.asset(
image,height: 20,fit: BoxFit.fill,padding: EdgeInsets.all(10),shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),side: BorderSide(color: Colors.black)),color: backgroundcolor,splashColor: Colors.transparent,highlightColor: Colors.transparent,);
}
class ChoiceAuthMehod extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
SizedBox(
width: 290,child: RaisedButton(
color: Colors.black,child: Text(
'Sign up / log in',style: TextStyle(color: Colors.red,fontSize: 18),onPressed: () {
Navigator.of(context)
.pushReplacementNamed(AuthScreen.routeName);
},shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),SizedBox(
height: 10,createRaised(
backgroundcolor: Colors.white,image: 'lib/google_transperant.png',name: 'sign up with google',f: () => signinWithGoogle().then((value) {
print('email google : ${value.user.displayName}');
Navigator.of(context)
.pushReplacementNamed(Tabs.routeName);
}),textcolor: Colors.black),],);
}
}
通知
我已经搜索了我的问题,仅发现了一个看起来与我的问题非常相似的问题,但没有解决方案。 Why can't I link firebase email-password sign-in to google sign-in?
解决方法
转到Firebase控制台身份验证>登录方法>高级 将其更改为每个电子邮件地址多个帐户。
您现在可以使用相同的电子邮件地址登录不同的提供商
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。