Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

110
Vistas
createUserWithEmailAndPassword proporcionado por Firebase v9 congela la aplicación

Soy nuevo en la autenticación de base de fuego. Estoy creando una aplicación nativa de reacción. Estoy usando createUserWithEmailAndPassword para registrar un nuevo usuario. Adjunté un controlador de eventos para manejar el envío del formulario que activa la función onRegister. Deseo hacer uso del objeto de promesa que se devuelve de createUserWithEmailAnPassword.

Al intentar depurar usando Chrome, el depurador no se mueve al bloque de prueba (la contraseña tiene más de 6 dígitos y el correo electrónico también es válido). La aplicación se congela. El registro de la consola que he escrito en el bloque de prueba tampoco se imprime. Pero, en mi consola Firebase, se crea un nuevo usuario.

Si paso una contraseña no válida, se activa el código dentro del bloque catch. La aplicación no se congela.

¿Cómo evitar que la aplicación se congele y hacer uso del objeto devuelto por createUserWithEmailAndPassword?

 export default function Register(props) { let state = { email: "", password: "", name: "", }; async function onRegister() { const { email, password, name } = state; try { const res = await createUserWithEmailAndPassword(auth, email, password); const user = res.user; console.log(user); } catch (err) { console.error(err); alert(err.message); } } return ( <View> <TextInput placeholder="name" onChangeText={(name) => (state.name = name)} /> <TextInput placeholder="email" onChangeText={(email) => (state.email = email)} /> <TextInput placeholder="password" secureTextEntry={true} onChangeText={(password) => (state.password = password)} /> <Button onPress={() => onRegister()} title="Sign Up" />more tmore </View> ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

esto funcionó para mí

 import auth from '@react-native-firebase/auth'; export default class App extends React.Component{ constructor(props){ super(props); this.onSignUpPressed = this.onSignUpPressed.bind(this); this.state = { email: '', password: '', passwordError: '', emailError: '', secureTextEntry: true, } } emailValidator = (email) => { const re = /\S+@\S+\.\S+/; if (!email || email.length <= 0) return 'Email cannot be empty.'; if (!re.test(email)) return 'Ooops! We need a valid email address.'; return ''; }; passwordValidator = (password) => { if (!password || password.length <= 0) return 'Password cannot be empty.'; return ''; }; async onSignUpPressed(){ const emailError = this.emailValidator(this.state.email); const passwordError = this.passwordValidator(this.state.password); if (emailError || passwordError) { this.setState({ emailError: emailError, passwordError: passwordError }) return; } const {email, password} = this.state; await auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; console.log(user) }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; console.log(errorMessage) }); }; render(){ const {email, password, passwordError, emailError, secureTextEntry} = this.state; return( <View> <TextInput placeholder="Email" value={email} error={!!emailError} errorText={emailError} placeholderTextColor="#666666" onChangeText={(email) => this.setState({email})} /> <TextInput placeholder="Password" placeholderTextColor="#666666" error={!!passwordError} errorText={passwordError} value={password.value} secureTextEntry={secureTextEntry ? true : false} onChangeText={(password) => this.setState({password})} /> <Button onPress={this.onSignUpPressed} title='SignUp'/> </View> )} }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda