๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์›น๊ณต๋ทฐ

firestore rules ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ณ„์† ์›๋ณต๋˜๋Š” ๋ฌธ์ œ(+ํ•ด๊ฒฐ)

by ์ด๋…ธํ‚ค_ 2023. 11. 30.

test ๋ชจ๋“œ๋กœ ์ž‘์„ฑ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‚ ์งœ๊ฐ€ ํ•œ๋‹ฌ ๋’ค๋กœ ์„ค์ •๋˜์–ด์žˆ์—ˆ๋‹ค.

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {

    match /{document=**} {
      allow read, write: if request.time < timestamp.date(2023, 11, 26);
    }
  }
}

 

๊ทธ๋ž˜์„œ read๋Š” ๋ชจ๋‘๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , write๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฐ”๊พธ์—ˆ๋‹ค.

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {

    match /{document=**} {
      allow read: if true;
    }
    
    match /{document=**} {
      allow write: if request.auth != null;
  	}
  }
}

 

๊ทธ๋Ÿฐ๋ฐ ์™ ๊ฑธ. 

๋‹ค์‹œ ์ ‘๊ทผ ์‹คํŒจํ–ˆ๋‹ค๋Š” ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ํ™”๋ฉด์ด ๋ณด์˜€๋‹ค. 

ERROR
Missing or insufficient permissions.
FirebaseError: Missing or insufficient permissions.

 

๋‹ค์‹œ rules๋ฅผ ํ™•์ธํ–ˆ๋”๋‹ˆ ์›๋ž˜ ์ฒ˜์Œ ๊ทœ์น™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋˜๊ฒƒ. 

๋‹ค์‹œ ๋ฐ”๊พธ์–ด๋„ ์›๋ณต.

 

์•Œ๊ณ ๋ณด๋‹ˆ Firebase ์ฝ˜์†”์—์„œ ๋ณ€๊ฒฝ์„ ์•„๋ฌด๋ฆฌํ•ด๋„, firebase deploy๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด(ํ˜ธ์ŠคํŒ…) ๋‚ด ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ ๋‚ด์˜ firestore.rules์˜ ๋‚ด์šฉ์œผ๋กœ ๋‹ค์‹œ rules๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. 

 

๋กœ์ปฌ์˜ firestore.rules๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์‹œ deployํ•˜๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

๋Œ“๊ธ€