반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- synology
- ReactNaitve
- 캠핑
- 캠핑장
- react native
- Expo
- Django
- reactnative
- 맛집
- Firebase
- MSSQL
- 엑셀
- docker
- 시놀로지
- Excel
- 서울
- 연곡해변
- apk
- SQL
- 수도권 근교
- 강릉
- react
- 리엑트
- 시놀로지나스
- 리액트
- 함수
- 장고
- 가상환경
- 나스
- Nas
Archives
- Today
- Total
차근차근 생활 & 코딩
[React Native] EXPO - Firebase 회원가입 본문
반응형
이번시간에는 회원가입에 대해 알아보도록 하겠습니다.
Step 1. 설정값 참조하기
- 위 링크를 참조하여 기본 세팅을 완성하시기 바랍니다.
Step 2. 코드 작성하기
- 아래 전체 코드를 복사하여 사용하시면 됩니다.
# All Code
import { StyleSheet, Text, TextInput, TouchableOpacity } from "react-native";
import { createUserWithEmailAndPassword } from "firebase/auth";
import React, { useState } from "react";
import { auth, db } from "../firebase";
import { doc, setDoc } from "firebase/firestore";
const Signupscreen = () => {
/* Signup State */
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
/* Signup Function */
const onHandleSignup = async () => {
try {
await createUserWithEmailAndPassword(auth, email, password)
.then((userCredential) => {
const user = userCredential.user;
const userRef = doc(db, "users", user.uid);
setDoc(userRef, {
displayName: name,
email: email,
uid: user.uid,
createdAt: new Date().toUTCString(),
});
})
.then(() => alert("Data uploaded"));
} catch (error) {
Alert.alert(error.message);
}
};
return (
<View style={styles.container} behavior="padding">
{/* Signup Input Box */}
<TextInput
style={styles.input}
placeholder="Enter name"
autoCapitalize="none"
autoCorrect={false}
textContentType="name"
value={name}
onChangeText={(text) => setName(text)}
/>
<TextInput
style={styles.input}
placeholder="Enter email"
autoCapitalize="none"
keyboardType="email-address"
textContentType="emailAddress"
autoFocus={true}
value={email}
onChangeText={(text) => setEmail(text)}
/>
<TextInput
style={styles.input}
placeholder="Enter password"
autoCapitalize="none"
autoCorrect={false}
secureTextEntry={true}
textContentType="password"
value={password}
onChangeText={(text) => setPassword(text)}
/>
{/* Signup Button */}
<TouchableOpacity style={styles.btn} onPress={onHandleSignup}>
<Text
style={{ fontWeight: "bold", color: "#fff", fontSize: 18 }}
>
Sign Up
</Text>
</TouchableOpacity>
</View>
);
};
export default Signupscreen;
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
justifyContent: "center",
color: "black",
},
btn: {
backgroundColor: "#223a5e",
width: "100%",
padding: 15,
borderRadius: 10,
alignItems: "center",
},
input: {
margin: 10,
borderTopWidth: 1,
borderBottomWidth: 1,
borderLeftWidth: 1,
borderRightWidth: 1,
padding: 20,
},
});
수고하셨습니다.
반응형
'IT > REACT NATIVE(리액트 네이티브)' 카테고리의 다른 글
[React Native] EXPO - Firebase 로그인, 로그아웃 (2) | 2023.10.26 |
---|---|
[ReactNative] RN - 리액트 네이티브 안보이는 앱 아이콘 보이게 하기 (0) | 2023.06.28 |
[React Native] RN - 네이버 로그인하기(Android Naver Login) (0) | 2023.06.14 |
[ReactNative] RN IOS - axios http 허용하기 (0) | 2022.10.18 |
[ReactNative] RN Android - 바코드 스캔 (0) | 2022.10.17 |
Comments