Firebase ';电子邮件格式不正确';反应天然火基

Firebase ';电子邮件格式不正确';反应天然火基,firebase,react-native,Firebase,React Native,我是这样称呼firebase auth的: onButtonPress() { const {email, password} = this.state; console.log(email,password); firebase.auth().signInWithEmailAndPassword(email, password) .catch( (err) => { console.log(err);

我是这样称呼firebase auth的:

onButtonPress() {
    const {email, password} = this.state;
    console.log(email,password);
    firebase.auth().signInWithEmailAndPassword(email, password)
        .catch( (err) => {
            console.log(err);
              firebase.auth().createUserWithEmailAndPassword(email, password)
                 .catch( (err) => {
                     console.log(err);
                    this.setState({ error: err.message });
             });
        });
   }
这是我的身份验证文本输入:

<Card>
        <CardSection>
            <Input
                secureTextEntry={false}
                label={'E-mail'}
                placeholder={'user@gmail.com'}
                onChangeText={(email) => this.setState({email})}
                value={this.state.email}
            />
        </CardSection>

        <CardSection>
            <Input
                secureTextEntry={true}
                label={'Password'}
                placeholder={'password'}
                onChangeText={(password) => this.setState({password})}
                value={this.state.password}

            />
        </CardSection>
        <Text style={styles.errorStyle}>{this.state.error}</Text>
        <CardSection>
            <Button onPress={this.onButtonPress.bind(this)}>
                Log In
            </Button>
       </CardSection>
</Card>

this.setState({email})}
值={this.state.email}
/>
this.setState({password})}
值={this.state.password}
/>
{this.state.error}
登录
但当它运行时,会显示这样的消息:


即使我没有在input中输入任何电子邮件和密码并按submit,也会弹出此错误

您的代码错误,您的创建用户函数位于登录捕获块中。将它们分开,在创建user:I是指注册时只需这样做

firebaseRef.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)。然后((userData)=>{//userData})。catch((error)=>{//error})

登录:

firebaseRef.auth().signiWithEmailAndPassword(this.state.email,this.state.password)。然后((userData)=>{//userData})。catch((error)=>{//error})

而且你在注册时已经登录了


注:firebaseRef是Firebase.initializeApp(配置)的引用

此错误是由于this.state.email导致的默认空格引起的。使用trim()并将其发送到服务器,阻止了错误的发生。这是一段工作代码

const {email, password} = this.state;
    this.setState({ error: '', loading: true });
    firebase.auth().signInWithEmailAndPassword(email.trim(), password)
        .then(this.onLoginSuccess.bind(this))
        .catch( (err) => {
            firebase.auth().createUserWithEmailAndPassword(email.trim(), password)
                .then(this.onLoginSuccess.bind(this))
                .catch(this.onLoginFailed.bind(this));
        });

我们可以看看onButtonPress方法吗?问题是什么?是的,空的格式不正确email@cladClad我已经更新了问题。我尝试了你的代码,得到了相同的错误。。代码:“验证/无效电子邮件”,消息:“电子邮件地址格式不正确。”注册过程成功吗?您是否正确地向服务部门发送电子邮件?如果你做的每件事都正确,我不知道为什么会发生。是的,我发现这个.state.email有额外的空间。trim()使我免于那个问题。现在有一个新问题。发生了网络错误(例如超时、连接中断或主机无法访问)。当我第一次使用firebase时,我意识到react native debugger会导致firebase出现“网络错误”之类的问题,我不记得为什么或如何解决此问题。关闭调试器并再次尝试查看其调试器是否正确。检查:这是一个到本机端的小JS桥,我认为它将为调试器解决您的问题。它显示email.trim()函数.trim()未定义!