firebasegoogle-cloud-functions

Newly Created Firebase Functions Throwing UNAUTHENTICATED Error


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


Solution

  • 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