firebase initializing
import firebase from 'firebase/app';
import 'firebase/auth';
interface Iproviders {
Google: firebase.auth.AuthProvider;
Github: firebase.auth.AuthProvider;
}
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DB_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
};
// Initialize Firebase
const firebaseApp = firebase.initializeApp(firebaseConfig);
export const auth = firebase.auth();
export const Proviers: Iproviders = {
Google: new firebase.auth.GoogleAuthProvider(),
Github: new firebase.auth.GithubAuthProvider(),
}
export default firebaseApp;
database repository
import firebaseApp from './firebase';
import { Item } from '../components/main/main';
export type UserId = any;
export class ItemRepository {
updateItems(userId: UserId, updateCallback: any) {
console.log(userId);
const ref = firebaseApp.database().ref(`${userId}/items`);
ref.on('value', (snapshot) => {
const data = snapshot.val();
data && updateCallback(data);
})
return ref.off();
}
deleteItem(item: Item, userId: UserId) {
firebaseApp.database().ref(`${userId}/items/${item.id}`).remove();
}
}
export default ItemRepository;
dependencies
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/react-fontawesome": "^0.1.15",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.9",
"firebase": "^8.9.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"typescript": "^4.1.2",
"web-vitals": "^1.0.1"
},
더 필요한거있나 ㅇㅅㅇ
@firebase/database 설치 ㄱㄱ
ㄴㄴㄴ firebase만 설치하면 됨. 다른거 설치할 필요 없어. 근데 firebase/auth만 import하고 firebase/database를 import도 export도 안했잖아
import firebase from 'firebase/app 쓰면 다 되는 거아니엇음; 8ㅅ8 하...
그걸로 다 되는거면 firebase/auth는 왜 import 했어? 파이어베이스 공식문서가 좀 거지같음.
import 'firebase/database' 추가하고 export const database = firebase.database(); 한 다음에 database repository에서 firebaseApp이 아니라 database를 import 해와야지. 왠만하면 auth랑 database 변수명에 firebase도 언급하는게 좋을거같은데
오 ㄳㄳ 방금 적힌데로 바꿨음 제발되길
와씨 된닼ㅋㅋ 너무 ㄳㄳ 덕분에 import 개념도 배워감
공식문서 거지같긴 하네... 파파고 써가면서 다읽었는데 슈발
나도 파이어베이스 써본지 오래되서 간만에 리마인드됨. 공식문서 보고 뭔소린지 모르겠어서 깃헙에서 내 옛날코드 뒤져봄 ㅋㅋ