Firebase Cloud Functions Firestore Trigger produces: Error: 7 PERMISSION_DENIED: Missing or insufficient permissions
I had the same issue. And like nvitius, I solved it by changing permissions.
When creating a function, the default service account appears to be <project-name>@appspot.gserviceaccount.com
.
You can check this by clicking on the Environment variables, networking, timeouts and more
link:
And then you can verify or change the account to the `App Engine default service account':
After this, I went to the IAM to verify the permission this service account had.
But the IAM did not have this service account listed/added.
So I add it >> Add >> New members. Start typing the ID of the project and the service account should pop-up in the drop-down.
And then I gave it the following permissions:
- Project >> Editor (It may have this already)
- Datastore >> Cloud Datastore Owner
- Storage >> Storage Admin
Hope this helps.
My solution was setting up the serviceAccount, check the following code snippet:
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://your-database-url.firebaseio.com"
});
You can generate the serviceAccountKey on: Firebase dashboard -> Project Settings -> Service Accounts tab
Hope it helps!
I had the same exact problem with Cloud Functions. My issue was not solved by deleting/redeploying the function. It turns out that, when my project was provisioned, the IAM roles for the default service account were not added. I had to add an Editor
role in the IAM Admin panel for <project-name>@appspot.gserviceaccount.com
.