DEV Community

Discussion on: Firebase Firestore Rules with Custom Claims - an easy way

Collapse
 
pradeephere profile image
pradeep-here • Edited

Hi, is the custom-claims still usable in Firestore Rules ?
It worked for me few months back, but same rule is not working now.

Getting error - Missing or insufficient permissions

Rule used:

    allow read: if request.auth.token.level == 4
Enter fullscreen mode Exit fullscreen mode

I have verified the user has the custom token claim. Printing tokens in console on UI, onAuthStateChanged shows the new token

level: "4"
Enter fullscreen mode Exit fullscreen mode

JS code to print user custom claims in console log:

    if(user) {
      user.getIdToken(true)
      .then(() => {
        user.getIdTokenResult().then(idTokenResult => {
          console.log('firebase-util.js idTokenResult.claims: ', idTokenResult.claims)
        })
      })
    } else {
      console.log('refreshIdTokens : currentUser not set')
    }
Enter fullscreen mode Exit fullscreen mode

In firebase documentation also, I see only Database Rules and Storage Rules are mentioned for Custom-Claims. I do not see reference of Firestore Rules - firebase.google.com/docs/auth/admi...

Collapse
 
pradeephere profile image
pradeep-here

Oh, got it sorted just now.

Issue: Custom claim (level) was String "4"
Fix: Changed it to Number 4

Collapse
 
alvardev profile image
Alvaro David

Hi Pradeep-here! Great to know that everything worked :)