11
votes

I have a Firebase project with over 10 cloud functions. Today I added 3 more, but all three of the new ones are throwing an error UNAUTHENTICATED without actually trying to hit the function. (There's no record of a function call in the logs). I haven't made any changes to my environment or Firebase project since adding the previous functions.

I have tried redeploying all of the functions in my project, the three newest ones continue to fail while the previous ones work fine. I have also verified that I am using Node 8, since there are some similar issues reported stemming from using Node 10. I am not sure what else to try since the issue only applies to the new functions.

The new functions all have a similar signature:

exports.createGroup = functions.https.onCall((data, context) => {
  //Firestore access
});

They are being called like this:

const create = functions().httpsCallable('createGroup');
return create({ group: oGroup }).then(result => {
      //Do something
}).catch(err => {
      console.log(err.message); //UNAUTHENTICATED
});

Node Version: 8.16.2

Firebase Tools Version: 7.6.1

3
Contact Firebase support directly for assistance. support.google.com/firebase/contact/supportDoug Stevenson
I've disabled "Cloud Scheduler API" and then reenabled it. After that it started working.Hemant Kaushik
Disable and enable Cloud Scheduler API, it worked for me too! Here: console.cloud.google.com/apis/api/cloudscheduler.googleapis.com/…Peter Palmer

3 Answers

8
votes

It must be solved at your GCP Console (not Firebase). Just follow these steps:

  1. Go to your GCP Console and login
  2. On the top menu, select the corresponding Firebase project
  3. On the left menu go to Cloud Functions Click the checkbox of your function (not the name of the function)
  4. Once selected, on the right menu select "Add member"
  5. On "New member" type allUsers
  6. On the Select function bar, select Cloud Functions -> Cloud functions invoker
  7. Click on "Save" and then "Allow public access" on the pop-up warning And you're good to go!
7
votes

Via Google Cloud docs:

As of January 15, 2020, HTTP functions require authentication by default. You can specify whether a function allows unauthenticated invocation at or after deployment.

The solution was to utilize the Google Cloud console (NOT the Firebase console) to add the allUsers permission to the newly created functions.

https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation

0
votes

I ran into this error when deploying several functions and there was an issue during the upload where it seems the deployment got corrupted .. perhaps network related, not sure

After deleting the offending cloud functions in the Firebase console, and then doing a fresh successful deploy for them, the "FirebaseFunctionsException UNAUTHENTICATED" error went away

First I tried to just redeploy the functions, but that was not enough, the error continued this way