使用Firebase注册本机应用程序

使用Firebase注册本机应用程序,firebase,react-native,Firebase,React Native,我正在尝试在我的应用程序中添加Firebase身份验证(电子邮件和密码),我有一个注册屏幕和一个功能。我真的不知道如何在我的屏幕代码中使用这个功能。正如你所看到的,我试着在不同的地方加入,但没有任何结果。这是我第一次尝试做授权,我将非常感谢您的帮助! 我的注册屏幕如下所示: export default function RegisterScreen({ navigation }) { const [name, setName] = useState({ value: '', error:

我正在尝试在我的应用程序中添加Firebase身份验证(电子邮件和密码),我有一个注册屏幕和一个功能。我真的不知道如何在我的屏幕代码中使用这个功能。正如你所看到的,我试着在不同的地方加入,但没有任何结果。这是我第一次尝试做授权,我将非常感谢您的帮助! 我的注册屏幕如下所示:

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});
    };
};