Is there a way to create a custom claim without having to go through cloud functions?
I really only need to set it up for a few accounts, and my current plan is spark. I can't upgrade just yet. But I need to test this feature to implement role based authentication.
Thank you and please be as detailed as possible as I'm new to firebase cli.
Yes, if you just need to setup a few users then you run a script locally to add the claims. Just follow the steps:
1. Create a NodeJS project
npm init -y
//Add Firebase Admin
npm install firebase-admin
2. Write this code in a JS file (addClaims.js):
const admin = require("firebase-admin")
admin.initializeApp({
credential: admin.credential.cert("./serviceAccountKey.json"),
databaseURL: "https://<project-id>.firebaseio.com/"
})
const uid = "user_uid"
return admin
.auth()
.setCustomUserClaims(uid, { admin: true })
.then(() => {
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
console.log(`Admin claim added to ${uid}`)
});
3. Run the script
node addClaims.js
You can also write a function that takes an array of UIDs as parameter and adds claims to all of them using a loop. To read more about service account and initializing the Admin SDK, check this documentation.