使用Firebase注册本机应用程序
我正在尝试在我的应用程序中添加Firebase身份验证(电子邮件和密码),我有一个注册屏幕和一个功能。我真的不知道如何在我的屏幕代码中使用这个功能。正如你所看到的,我试着在不同的地方加入,但没有任何结果。这是我第一次尝试做授权,我将非常感谢您的帮助! 我的注册屏幕如下所示:使用Firebase注册本机应用程序,firebase,react-native,Firebase,React Native,我正在尝试在我的应用程序中添加Firebase身份验证(电子邮件和密码),我有一个注册屏幕和一个功能。我真的不知道如何在我的屏幕代码中使用这个功能。正如你所看到的,我试着在不同的地方加入,但没有任何结果。这是我第一次尝试做授权,我将非常感谢您的帮助! 我的注册屏幕如下所示: export default function RegisterScreen({ navigation }) { const [name, setName] = useState({ value: '', error:
export default function RegisterScreen({ navigation }) {
const [name, setName] = useState({ value: '', error: '' })
const [email, setEmail] = useState({ value: '', error: '' })
const [password, setPassword] = useState({ value: '', error: '' })
const onSignUpPressed = () => {
authActions.signup(email.value, password.value);
console.log('hi')
const nameError = nameValidator(name.value)
const emailError = emailValidator(email.value)
const passwordError = passwordValidator(password.value)
if (emailError || passwordError || nameError) {
setName({ ...name, error: nameError })
setEmail({ ...email, error: emailError })
setPassword({ ...password, error: passwordError })
return signup(email.value, password.value)
}
navigation.reset({
index: 0,
routes: [{ name: 'Dashboard' }],
})
}
return (
<Background>
<BackButton goBack={navigation.goBack} />
<Logo />
<Header>Create Account</Header>
<TextInput
label="Name"
returnKeyType="next"
value={name.value}
onChangeText={(text) => setName({ value: text, error: '' })}
error={!!name.error}
errorText={name.error}
/>
<TextInput
label="Email"
returnKeyType="next"
value={email.value}
onChangeText={(text) => setEmail({ value: text, error: '' })}
error={!!email.error}
errorText={email.error}
autoCapitalize="none"
autoCompleteType="email"
textContentType="emailAddress"
keyboardType="email-address"
/>
<TextInput
label="Password"
returnKeyType="done"
value={password.value}
onChangeText={(text) => setPassword({ value: text, error: '' })}
error={!!password.error}
errorText={password.error}
secureTextEntry
/>
<Button
mode="contained"
onPress={onSignUpPressed}
style={{ marginTop: 24 }}
>
Sign Up
</Button>
<View style={styles.row}>
<Text>Already have an account? </Text>
<TouchableOpacity onPress={() => navigation.replace('LoginScreen')}>
<Text style={styles.link}>Login</Text>
</TouchableOpacity>
</View>
</Background>
)
}
return async dispatch => {
const response = await fetch (
'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=KEY,
{
method: 'POST',
headers: {
'Çontent-Type': 'application/json'
},
body: JSON.stringlify({
email: email,
password: password,
returnSecureToken: true
})
}
);
if (!response.ok){
throw new Error('Some shit happened!');
}
const resData = await response.json();
console.log(resData)
dispatch({type: SIGNUP});
};
};