使用React Native在Firebase身份验证上将错误显示为警报

时间:2018-11-03 08:55:46

标签: reactjs native

我在我的React Native应用程序中使用了此功能,但它使我的应用程序崩溃,尽管它在控制台上显示了我在模拟器上的错误,但我应如何使用alert向用户显示任何错误而不是使应用程序崩溃?

  signup =(email,password) =>{
try{
    firebase.auth().createUserWithEmailAndPassword(email,password)

    .then(() => this.props.navigation.navigate('home')) } 
    catch(error){
        alert("not valid"`enter code here`)
    }

   }

3 个答案:

答案 0 :(得分:1)

您可以使用开关箱上的错误代码显示自定义警报消息:

[c0d3@z3r0 tmp]$ cat /etc/udev/rules.d/45-test.rules
GOTO="end"
IMPORT{program}=="/bin/touch /tmp/noend"
LABEL="end"
IMPORT{program}=="/bin/touch /tmp/end"
[c0d3@z3r0 tmp]$ sudo udevadm control --reload 
[c0d3@z3r0 tmp]$ sudo udevadm trigger
[c0d3@z3r0 tmp]$ ls /tmp/*end
/tmp/end
[c0d3@z3r0 tmp]$ 

如果您想直接从firebase显示消息:

import {Alert} from 'react-native';

   try{
    firebase.auth().createUserWithEmailAndPassword(email,password)
      .then(() => this.props.navigation.navigate('home'))
      .catch(error => {   
        switch(error.code) {
          case 'auth/email-already-in-use':
                Alert.alert('Email already in use !')
                break;
       }
     })
   }catch(err){
      alert("Error : ", err);
   }

答案 1 :(得分:0)

为什么不

 signup =(email,password) =>{
     try{
        firebase.auth().createUserWithEmailAndPassword(email,password)
          .then(() => this.props.navigation.navigate('home'))
          .catch(error => {
           alert("Error occurred", error)
         })
       }catch(err){
          alert("Error occurred", err);
        }
   }

答案 2 :(得分:0)

我认为您不能在我之前做过的try块中使用异步函数或promise,这导致了与urs相同的问题,您只能在那时使用并捕获并尝试删除try语句,我希望它帮助