Typescript에서 React Hooks를 사용한 Firebase 인증
4413 단어 reactfirebasetypescriptauth
개요
Firebase는 신규 또는 기존 프로젝트에 쉽고 간단한 인증을 연결하는 훌륭한 제공업체이며 Google Cloud Platform의 다른 기능과 쉽게 통합할 수 있습니다. 응용 프로그램에 추가하는 것은 간단할 수 있지만 많은 자습서는 대규모 응용 프로그램과 품질 보증을 염두에 두고 깔끔하게 구현하는 방법에 적합하지 않습니다.
가정된 지식
설정
GCP 및 Firebase
시작하려면 GCP 계정을 설정하고 https://console.firebase.google.com/ 에서 Firebase 콘솔에 로그인해야 합니다. 그런 다음 이 실행에서 사용할 프로젝트를 설정해야 합니다. 이 연습에서는 프로젝트 이름을 "HooksAuth"로 지정했습니다.
그런 다음 왼쪽 메뉴에서 "인증"페이지로 이동하여 이메일/비밀번호 및 Google 인증을 활성화하겠습니다.
반응
반응 프로젝트를 처음부터 설정하려면 cli에서 다음 명령을 실행하여 create-react-app을 사용할 수 있습니다.
npx create-react-app hooksAuth --template typescript
다음(선택 사항) 단계는 React 앱에서 모든 상용구 콘텐츠를 제거하는 것입니다. 예를 들어 반응 이미지, 매니페스트, App.tsx 콘텐츠 등. 이것은 내 사이트에 create-react-app 콘텐츠가 없는 깨끗한 슬레이트에서 시작하는 데 도움이 됩니다.
후크 설정
우리는 useContext를 통해 Firebase 앱을 추상화하여 앱을 통해 상태를 공유할 수 있고 모든 추상화 및 액세스를 쉽게 업데이트하고 리팩토링할 수 있도록 할 것입니다.
FirebaseContext.ts
import firebase from 'firebase';
const firebaseConfig = {
apiKey: "KEY",
authDomain: "somedomain.firebaseapp.com",
databaseURL: "https://somedomain.firebaseio.com",
projectId: "hooksauth-ID_HERE",
storageBucket: "hooksauth-ID_HERE.appspot.com",
messagingSenderId: "SENDER_ID",
appId: "APP_ID"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
REACT_APP_API_KEY=KEY
REACT_APP_AUTH_DOMAIN=somedomain.firebaseapp.com
REACT_APP_DB_URL=https://somedomain.firebaseio.com
REACT_APP_PROJECT_ID=hooksauth-ID_HERE
REACT_APP_STORAGE_BUCKET=hooksauth-ID_HERE.appspot.com
REACT_APP_MESSAGING_SENDER_ID=SENDER_ID
REACT_APP_APP_ID=APP_ID
구성을 다음과 같이 업데이트하십시오.
const firebaseConfig = {
apiKey: process.env.REACT_APP_API_KEY,
authDomain: process.env.REACT_APP_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_DB_URL,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_APP_ID,
};
// Initialize Firebase
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
firebase.analytics();
}
export interface IFirebaseContext {
firebase: firebase.app.App,
authProviders: string[]
}
export const FirebaseContext = React.createContext({} as IFirebaseContext)
그런 다음 공급자가 앱을 래핑합니다.
export const FirebaseProvider = ({ children }: any) => {
return (
<div>
<FirebaseContext.Provider value={{ 'firebase': firebase.app(), authProviders } as IFirebaseContext}>
{children}
</FirebaseContext.Provider>
</div>
);
}
<FirebaseProvider>
에 래핑하려고 합니다. 이제 나머지 앱에서 auth 개체에 액세스하려면 const firebaseContext = useContext(FirebaseContext);
를 호출하고 거기에서 액세스하면 됩니다. 이것은 firebase-ui 패키지와 결합하여 인증을 즉시 실행하고 실행할 수 있습니다react-firebaseui 패키지를 사용하고 사용자 데이터를 저장하는 예는 내 github 저장소를 참조하십시오. https://github.com/bmpickford/firebase-auth-example
개선 사항이 있으면 언제든지 PR 또는 문제를 제출하십시오.
Reference
이 문제에 관하여(Typescript에서 React Hooks를 사용한 Firebase 인증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bmpickford/firebase-auth-with-react-hooks-in-typescript-44b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)