DEV Community

Anden Acitelli
Anden Acitelli

Posted on • Updated on • Originally published at andenacitelli.com

Firebase Functions - An application is requesting permission to access your Google Account.

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); 
Enter fullscreen mode Exit fullscreen mode

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"
      }
    ]
  }
Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)