Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

113
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!