반응형
firebase.google.com/docs/functions/config-env?authuser=0
firebase 데이터베이스 환경설정
// 1. 세팅해보기
cmd:>firebase functions:config:set admin.email=이메일주소@gmail.com admin.db_url=주소
// 2. 환경설정 값이 잘 저장되었는지 확인하기
cmd:> firebase functions:config:get
// 3. 환경설정 값이 잘 저장되었다면 디플로이 하기
cmd:> firebase deploy --only functions
functions/index.js
//생략
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
// 기존에 url 주소를 환경설정 값에 맞게 바꾼다.
databaseURL: functions.config().admin.db_url // 'https://test-51087.firebaseio.com'
})
const db = admin.database()
exports.createUser = functions.auth.user().onCreate(async (user) => {
const { uid, email, displayName, photoURL } = user
const u = {
email,
displayName,
photoURL,
//실시간 데이터베이스는 Date로는 시간표시가 안되므로 getTime() 메서드 사용후 변환해야..
createdAt: new Date().getTime(),
// 관리자에게 level 0으로 권한주기
level: email === functions.config().admin.email ? 0 : 5
}
db.ref('users').child(uid).set(u)
})
exports.deleteUser = functions.auth.user().onDelete(async (user) => {
const { uid } = user
db.ref('users').child(uid).remove()
})
deploy 하기
cmd:> firebase deploy --only functions:createUser
database.rules.json
firebase.google.com/docs/database/security/user-security?authuser=0
//실시간 데이터베이스에서 level이 0인 admin만 write를 할 수 있게 하자.
{
"rules": {
".read": true,
"site": {
".write": "root.child('users').child(auth.uid).child('level').val() == 0"
}
}
}
deploy 하기
//실시간 데이터베이스 디플로이 하는 방법.
cmd:> firebase deploy --only database
관리자에게 level 0 이 잘 주어졌는지 확인하기
반응형
'포트폴리오 만들기 > Vue, firebase 게시판 만들기' 카테고리의 다른 글
firebase Cloud Functions 활용하기 (0) | 2020.08.17 |
---|---|
구글 로그인 해보기 (0) | 2020.08.17 |
에러 처리하기 (0) | 2020.08.13 |
제목 수정하기 (0) | 2020.08.13 |
firebase realtime database 읽고 쓰기 (0) | 2020.08.13 |