我有一个注册屏幕,其中包含“ 用户名,电子邮件,电话号码,密码” 在这种情况下,我使用电话号码身份验证来验证该号码,因此在用户验证其号码后,我将其数据保存到了Firebase DB中,
所以在那之后,我导航到登录屏幕!,其中应该包含 电子邮件,密码 “他之前注册过的人” >
所以我不只是比较他的数据是否存在于数据库中, 因此,应使用电子邮件/密码Firebase身份验证
但是我认为这会对我的Bill或其他内容造成很大的打击,
那么您认为实现这些情况的方法是什么,因为稍后我被迫通过电子邮件注册以获取重置密码?
这是我的注册码
signUp = async () => {
const {phoneNumber} = this.state;
this.setState({message: 'code was sent'});
const phoneWithAreaCode = phoneNumber.replace(/^0+/, '+972');
console.log(phoneWithAreaCode);
auth()
.signInWithPhoneNumber(phoneWithAreaCode, true)
.then(confirmResult => {
console.log('confirmResult', confirmResult);
this.setState({confirmResult, message: 'code was sent'});
// this.createUserDatabase();
})
.then(() => {
this.props.navigation.navigate('Confirmation', {
message: this.state.message,
confirmResult: this.state.confirmResult,
createUser: uid => this.createUserDatabase(uid),
phoneWithAreaCode: phoneWithAreaCode,
signInPhoneNumber: phone => auth().signInWithPhoneNumber(phone),
});
});
};
createUserDatabase = uid => {
const {userName, phoneNumber, email} = this.state;
// const uid = auth().currentUser.uid;
const data = {
uid,
name: userName,
email: email,
phoneNumber: phoneNumber,
};
database()
.ref(`users/${uid}`)
.set(data)
.then(() => {
console.log('New poll data sent!');
})
.catch(error => console.log('Error when creating new poll.', error));
};