반응형
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
- 나스
- MSSQL
- 시놀로지
- docker
- 리엑트
- Excel
- SQL
- 서울
- 가상환경
- 엑셀
- synology
- 함수
- Firebase
- 맛집
- reactnative
- Nas
- react native
- 캠핑
- 수도권 근교
- 시놀로지나스
- apk
- 연곡해변
- 장고
- 강릉
- react
- ReactNaitve
- 캠핑장
- 리액트
- Expo
- Django
Archives
- Today
- Total
차근차근 생활 & 코딩
[React Native] RN Firebase 인증하기 - 이메일 회원가입 본문
반응형
이번 시간에는 리액트 네이티브 회원가입 하는 방법에 대해 알려드리도록 하겠습니다.
아래 작업이 귀찬으신 분들께서는 맨 아래 전체코드를 작성해 놓았습니다.
Install(설치하기)
아래 코드를 이용하여 라이브러리를 설치하도록 합니다.
yarn add @react-native-firebase/auth
상태 변수 만들기
state 상태 변수 코드를 작성해 줍니다.
const [initializing, setInitializing] = useState(true);
const [user, setUser] = useState();
const [ registerEmail, setRegisterEmail ] = useState("");
const [ registerPassword, setRegisterPassword ] = useState("");
로그인 상태 유지
회원가입 후 로그인 상태 유지가 되도록 코드를 작성해 줍니다.
function onAuthStateChanged(user) {
setUser(user);
if (initializing) setInitializing(false);
}
useEffect(() => {
const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
return subscriber; // unsubscribe on unmount
}, []);
if (initializing) return null;
회원가입 함수 만들기
회원가입을 버튼을 눌렀을 때 firebase에 자료가 입력 될 수 있도록 코드를 작성합니다.
const register = async () => {
try {
const user = await auth().createUserWithEmailAndPassword(registerEmail, registerPassword)
console.log('User account created & signed in!');
} catch(error) {
console.log(error.message);
}
};
회원가입 디자인 만들기
회원가입 할 수 있도록 간단한 디자인을 만드시면 됩니다.
if (!user) {
return (
<View>
<Text>Login</Text>
</View>
);
}
return (
<View>
<TextInput
onChange={(e)=> setRegisterEmail(e.nativeEvent.text)}
placeholder="Email"
/>
<TextInput
onChange={(e)=> setRegisterPassword(e.nativeEvent.text)}
placeholder="Password"
/>
<Button title="회원가입" onPress={register}/>
<Text>Welcome {user.email}</Text>
</View>
);
전체 코드
import React, { useState, useEffect } from 'react';
import { StyleSheet, Text, View, TextInput, Button } from 'react-native'
import auth from '@react-native-firebase/auth';
export default function App() {
// Set an initializing state whilst Firebase connects
const [initializing, setInitializing] = useState(true);
const [user, setUser] = useState();
const [ registerEmail, setRegisterEmail ] = useState("");
const [ registerPassword, setRegisterPassword ] = useState("");
function onAuthStateChanged(user) {
setUser(user);
if (initializing) setInitializing(false);
}
useEffect(() => {
const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
return subscriber; // unsubscribe on unmount
}, []);
if (initializing) return null;
const register = async () => {
try {
const user = await auth().createUserWithEmailAndPassword(registerEmail, registerPassword)
console.log('User account created & signed in!');
} catch(error) {
console.log(error.message);
}
};
if (!user) {
return (
<View>
<Text>Login</Text>
</View>
);
}
return (
<View>
<TextInput
onChange={(e)=> setRegisterEmail(e.nativeEvent.text)}
placeholder="Email"
/>
<TextInput
onChange={(e)=> setRegisterPassword(e.nativeEvent.text)}
placeholder="Password"
/>
<Button title="회원가입" onPress={register}/>
<Text>Welcome {user.email}</Text>
</View>
);
}
수고하셨습니다.
반응형
'IT > REACT NATIVE(리액트 네이티브)' 카테고리의 다른 글
[React Native] RN - APK 추출하기 3편(AAB 파일 생성) (2) | 2022.01.26 |
---|---|
[React Native] RN 특정 버전 프로젝트 생성 (0) | 2021.12.30 |
[React Naitve] ScrollView 스크롤 숨기기 (2) | 2021.12.27 |
[React Native] RN - 현재 위치 좌표 불러오기 (2) | 2021.12.20 |
[React Native] RN - 카카오 로컬 API 사용하기(좌표를 주소로) (0) | 2021.12.20 |
Comments