I want to use firebase auth with react native for Login
and Signup
but I got a yellow error:
Setting a timer for a long period of time, i.e. multiple minutes, is a performance and correctness issue on Android as it keeps the timer module awake, and timers can only be called when the app is in the foreground. See (https://github.com/facebook/react-native/issues/12981) for more info. (Saw setTimeout with duration 111862ms)
How Can I Fix That?
I don't want to ignore that, I want to understand this error and solve that with the best and Standard way.
And This is my Code:
export default class Login extends Component { constructor(props) { super(props) this.state = { email: '', password: '', response: '' } this.signUp = this.signUp.bind(this) this.login = this.login.bind(this) } async signUp() { try { await firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password) this.setState({ response: 'Account Created!' }) setTimeout(() => { this.props.navigator.push({ id: 'App' }) }, 1500) } catch (error) { this.setState({ response: error.toString() }) } } async login() { try { await firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password) this.setState({ response: 'user login in' }) setTimeout(() => { this.props.navigator.push({ id: 'App' }) }) } catch (error) { this.setState({ response: error.toString() }) } } render() { return ( <View style={styles.container}> <View style={styles.containerInputes}> <TextInput placeholderTextColor="gray" placeholder="Email" style={styles.inputText} // onChangeText={(email) => this.setState({ email })} onChangeText={(email) => {console.log(email);}} /> <TextInput placeholderTextColor="gray" placeholder="Password" style={styles.inputText} password={true} onChangeText={(password) => this.setState({ password })} /> </View> <TouchableHighlight onPress={this.login} style={[styles.loginButton, styles.button]} > <Text style={styles.textButton} >Login</Text> </TouchableHighlight> <TouchableHighlight onPress={this.signUp} style={[styles.loginButton, styles.button]} > <Text style={styles.textButton} >Signup</Text> </TouchableHighlight> </View> ) } }
I Reported to Google Firebase Team: (https://github.com/firebase/firebase-js-sdk/issues/97)
To fix this issue...
Navigate to your node_modules/react-native/Libraries/Core/Timers/JSTimers.js file.
Look for the variable MAX_TIMER_DURATION_MS
Change its value to 10000 * 1000
Save the changes (with auto format turned off) and re-build your app.
Found this answer on https://github.com/firebase/firebase-js-sdk/issues/97#issuecomment-485410026
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With