Einstellen eines Timers für einen langen Zeitraum, dh mehrere Minuten

Lesezeit: 3 Minuten

Benutzer-Avatar
Said Heidarizarei

Ich möchte die Firebase-Authentifizierung mit React Native for verwenden Login und Signup aber ich habe einen gelben Fehler:

Das Einstellen eines Timers für einen langen Zeitraum, dh mehrere Minuten, ist ein Leistungs- und Korrektheitsproblem auf Android, da es das Timer-Modul wach hält und Timer nur aufgerufen werden können, wenn sich die App im Vordergrund befindet. Sehen (https://github.com/facebook/react-native/issues/12981) Für mehr Information. (Saw setTimeout mit einer Dauer von 111862 ms)

Wie kann ich das beheben?

Ich möchte das nicht ignorieren, ich möchte diesen Fehler verstehen und ihn auf die beste und Standard-Weise lösen.
Und das ist mein 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>
            )
        }
    }

Ich habe mich gemeldet Google Firebase-Team: (https://github.com/firebase/firebase-js-sdk/issues/97)

  • Dies ist nur eine vorübergehende Lösung, seit Sie die geändert haben node_modules Dateien, es ist nur in Ihrer lokalen Umgebung. da Sie die node_modules nicht festschreiben sollen. Wann immer also ein neuer Entwickler das Projekt einrichtet, müssen Sie es erneut tun. Und das ist am Ende kein Problem. Es ist nur eine Warnung, und die Firebase-Entwickler haben bereits erwähnt, dass sie es nicht ändern werden, da sie möchten, dass die Entwickler wissen, dass ihre Bibliothek diese Timer-bezogene Implementierung verwendet. –

    – Frederiko Cesar

    7. April um 9:43

  • Dies sollte die empfohlene Antwort sein, da andere Lösungen inzwischen veraltet sind.

    – ksingh

    15. November 2020 um 21:42 Uhr

  • Das Ignorieren von Protokollen würde das eigentliche Problem nicht wirklich beheben.

    – Pulkit Sharma

    23. Juni 2021 um 7:43 Uhr

  • @PulkitSharma stimme dir zu.

    – Ibad Scheich

    17. Januar um 4:13

  • Das ist am Ende kein Problem. Es ist nur eine Warnung, und die Firebase-Entwickler haben bereits erwähnt, dass sie es nicht ändern werden, da sie möchten, dass die Entwickler wissen, dass ihre Bibliothek diese Timer-bezogene Implementierung verwendet.

    – Frederiko Cesar

    7. April um 9:41

  • Für die Konsole sollte das funktionieren: console.ignoredYellowBox = ['Setting a timer'];

    – Vijayst

    28. Dezember 2018 um 13:17 Uhr

  • Irgendwelche Alternativen ohne Lodash?

    – Lukas Bustamante

    21. Februar 2019 um 2:20 Uhr

  • Es muss definitiv geklont werden. Es gibt viele Möglichkeiten, Objekte zu klonen. Wenn Sie ES6 verwenden, ist die folgende Logik äquivalent const _console = { ...console };.

    – Clay Risser

    25. Februar 2019 um 4:16 Uhr

  • YellowBox wird ersetzt durch LogBox jetzt.

    – festsitzender Überlauf

    16. August 2021 um 8:43 Uhr

1015320cookie-checkEinstellen eines Timers für einen langen Zeitraum, dh mehrere Minuten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy