Flutter 如何获取Firebase UID了解电子邮件用户?
我正在构建一个Flitter应用程序,管理员配置文件可以创建用户来访问他们的公司。代码正常工作,除非新用户以前是为另一家公司创建的。在这种情况下,FIREBASE AUTH会显示类型为error\u EMAIL\u已在使用的错误。我想做的只是从FIREBASE AUTH检索分配的UID,这是将数据库中的用户分配给其他公司所必需的 这是我的密码Flutter 如何获取Firebase UID了解电子邮件用户?,flutter,firebase-realtime-database,firebase-authentication,Flutter,Firebase Realtime Database,Firebase Authentication,我正在构建一个Flitter应用程序,管理员配置文件可以创建用户来访问他们的公司。代码正常工作,除非新用户以前是为另一家公司创建的。在这种情况下,FIREBASE AUTH会显示类型为error\u EMAIL\u已在使用的错误。我想做的只是从FIREBASE AUTH检索分配的UID,这是将数据库中的用户分配给其他公司所必需的 这是我的密码 _register(LoginBloc bloc, BuildContext context) async{ final usuarioBlo
_register(LoginBloc bloc, BuildContext context) async{
final usuarioBloc = Provider.usuarioBloc(context);
if (!formKey.currentState.validate() ) return;
final info = await usuarioProvider.crearUsuarioFirebase(bloc.email, bloc.password, true);
if (info['ok']) {
final keyUserId = info['localId'];
usuarioProvider.crearUsuarioRaiz(keyUserId, _prefs.idEmpresa, bloc.email);
usuario.idUsuario = info['localId'];
usuario.correo = bloc.email;
usuarioBloc.crearUsuarioEmpresa(usuario, usuario.idUsuario, usuario.idEmpresa); //to create user in the Company
print('******* User was Created *************');
} else { //info['ok'] is false
switch (info['mensaje'].code) {
case 'ERROR_EMAIL_ALREADY_IN_USE':
usuario.correo = bloc.email;
// usuario.idUsuario = ????????
// Here I would like to retrieve the UID to assign it to their additional Company
usuarioBloc.crearUsuarioEmpresa(usuario, usuario.idUsuario, usuario.idEmpresa); //to create user in the Company
print('*** User already in use, the user can use his/her usual password ***');
break;
default:
print(info['mensaje'].message); //If it was a different error
}
}
}
在这方面,我有
Future <Map<String, dynamic>> crearUsuarioFirebase(String email, String password, [bool desdeAdmin = false]) async {
try {
AuthResult result = await _firebaseAuth.createUserWithEmailAndPassword(email: email, password: password);
FirebaseUser user = result.user;
return {'ok' : true, 'localId':user.uid, 'email' : user.email};
} catch (e) {
print(e);
return {'ok': false, 'mensaje': e};
}
}
Future CrearuarioFirebase(字符串电子邮件,字符串密码,[bool desdeAdmin=false])异步{
试一试{
AuthResult result=wait_firebaseAuth.createUserWithEmailAndPassword(电子邮件:电子邮件,密码:密码);
FirebaseUser=result.user;
返回{'ok':true,'localId':user.uid,'email':user.email};
}捕获(e){
印刷品(e);
返回{'ok':false,'mensaje':e};
}
}
如何在知道用户电子邮件的情况下以编程方式获取UID?无法使用Firebase身份验证客户端API从用户的电子邮件地址查找用户的UID。由于此查找被视为受信任的操作,因此它仅在用于Firebase身份验证的Admin SDK中可用 两种最常见的解决方案是: