[解決済み] 複数分など長時間のタイマーを設定する
質問
リアクトネイティブでfirebase authを使いたいのですが、どうすればいいですか?
Login
と
Signup
を追加しましたが、黄色いエラーが出ました。
タイマーを長時間、つまり何分間も設定すると、タイマーモジュールが起き続けるため、Android ではパフォーマンスと正しさの問題があり、タイマーはアプリがフォアグラウンドにあるときのみ呼び出すことができます。参照 ( https://github.com/facebook/react-native/issues/12981 ) を参照してください。(ソー setTimeout with duration 111862ms)
どうすれば直せますか?
私はそれを無視したくない、私はこのエラーを理解し、最高の、標準的な方法でそれを解決したいです。
そして、これは私のコードです。
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>
)
}
}
私が報告したのは Google Firebase チーム : ( https://github.com/firebase/firebase-js-sdk/issues/97 )
どのように解決するのですか?
Google Said の Josh Crowther ソフトウェア エンジニア。
多段階の短時間の setTimeouts を使用しても、実際には問題は解決されません。Timer モジュールはまだアクティブなままで、アプリは警告で示されたパフォーマンスの問題に依然としてさらされています。ここでの問題は、長いタイマーを必要とするユースケースがあり、react-native はそのユースケースに対して最適化されていないことです。
つまり、正味のところ このバグはここでは修正できず、エラーを回避することしかできません。 長時間 (数分間) のタイマーを設定する を参照してください)、警告を無効にすることができます。私たちのコードで警告を無効にする作業を行うことは、(警告を無効にする以上の)問題の解決にはならず、完全に不要な SDK コードや重量が追加されます。
私は、上記の問題に対処することをお勧めします (すなわち facebook/react-native#12981 を参照してください。
関連
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptで複数ケースを扱うSwitch文
-
[解決済み] Node.js (JavaScript)で待つには?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)