Firebase Functions - An application is requesting permission to access your Google Account.
Anden Acitelli
Posted on September 29, 2022
The Bug
You're attempting to deploy a Firebase Cloud Function and have it serve a request, but you're presented with a screen saying "An application is requesting permission to access your Google Account"
I work for Akkio, where I'm building out a no-code predictive AI platform. If you're looking to harness the power of AI without needing a data scientist, give us a try!
The Solution
If you Google around, you'll see some advice that Cloud Functions are only supported in the us-central1
region, but I'm pretty sure they've expanded by now. The reason I was getting this issue was related to some inconsistency with what regions everything was in.
You need to specify the region when defining your cloud function:
const main = express();
main.use("/api/v1", app);
main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));
export const creditCards = functions.region("us-east1").https.onRequest(main);
Secondly, as noted on the docs page here, if you fail to specify the region in your rewrites, it tries to guess the right region from your source code, defaulting to us-central1
if it can't figure it out. You need to specify this region in your rewrites as well:
"hosting": {
"public": "public",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "/api/v1/**",
"function": "creditCards",
"region": "us-east1"
}
]
}
After fixing both of those, I was able to test in the local emulator and see the function successfully respond once I hit the endpoint.
Please note that while it's not mandatory to have all your different resources running in the same region, it's best practice to do so for latency reasons. I personally keep my Cloud Functions and Firestore in the same region.
Posted on September 29, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
September 29, 2022