下面是我将在Join.js中调用的auth函数
import { firebaseAuth } from './firebase'
export function auth (email, pw) {
return firebaseAuth().createUserWithEmailAndPassword(email, pw)
}
所以我的return语句出错,它说Object(...)不是函数。因此,在我的Join.js中,我创建了console.log,并没有为此this.email.value
定义 handleSubmit = (e) => {
e.preventDefault()
console.log(`${this.email.value}`);
auth(this.email.value, this.pw.value)
.catch(e => this.setState(setErrorMsg(e)))
}
以下是我接受用户的表格
<Form size='large' onSubmit={this.handleSubmit}>
<Form.Group>
<label >Username</label>
<Input className="Name" ref={(username) => this.username = username} />
</Form.Group>
<Form.Group>
<label>Password</label>
<Input type="password" className="PW" ref={(pw) => this.pw = pw} />
</Form.Group>
<Form.Group>
<label>Confirm Password</label>
<Input type="password" className="JoinConfirmPW" />
</Form.Group>
<Form.Group>
<label>Email Address</label>
<Input className="JoinEmail" ref={(email) => this.email = email}/>
</Form.Group>
<Form.Group>
<label>Gender</label>
<Form.Select className="JoinGender" options={options} placeholder='Gender' ref={(gender) => this.gender = gender} />
</Form.Group>
<Button color='teal' className="submit">Sign Up</Button>
</Form>
我不知道为什么我不确定。有人可以帮忙吗?
答案 0 :(得分:0)
好像您的firebaseAuth()
未定义。
您的firebase.js文件应该像
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/database';
...
const db = firebase.database();
const firebaseAuth = firebase.auth();
export {
db,
firebaseAuth,
};
和auth的使用方式一样,
firebaseAuth.doCreateUserWithEmailAndPassword(email, passwordOne)
.then(authUser => {
// Create a user in your own accessible Firebase Database too
db.doCreateUser(authUser.user.uid, username, email)
.then(() => {
this.setState(() => ({ ...INITIAL_STATE }));
history.push(routes.HOME);
})
.catch(error => {
this.setState(byPropKey('error', error));
});
})
.catch(error => {
this.setState(byPropKey('error', error));
});
答案 1 :(得分:0)
您的代码中有2个错误。首先,不要将输入字段的值存储在局部变量中。而是使用state并使用this.setState()
方法设置值。我知道这听起来很愚蠢,不应有太大的不同,但它消除了任何与范围相关的问题的可能性。
第二,您正在进行的Firebase调用无效。应该是firebase.auth().createUserWithEmailAndPassword(this.state.email, this.state.password);
提供状态变量中的值。其他使用适当的变量作为参数来传递电子邮件和密码。希望它能对我有用。