FIREBASE · GOOGLE CLOUD

Firebase / GCP
Project & Key Setup

A setup guide for Firebase (FCM push, Auth, Firestore, Analytics) and the underlying Google Cloud project, the stack most app projects rely on. Covers billing profile linkage through iOS/Android SDK keys in one pass.

Signup

Free (Spark)

Paid tier

Blaze when needed

Requirements

Google account + card

Overview

Before you begin

Firebase is a product suite built on top of a Google Cloud project. Start on the Spark (free) plan, and upgrade to Blaze (pay-as-you-go) when Cloud Functions or Storage usage grows. FCM push itself is unlimited and free on Spark.

Google account + 2FA

Workspace org account recommended.

Payment method (Blaze)

International-capable card required.

Pick a project name

Baked into some resource IDs.

Region (Asia-Northeast3)

Seoul region for KR services.

Step by Step

Step-by-step Guide

01

PROJECT

Create a Google Cloud project

Firebase provisions a GCP project under the hood.

  • Open console.cloud.google.com
  • Create new project (Project ID is globally unique)
  • Choose "No organization" or pick your org
  • Firebase Console will auto-link it later
02

FIREBASE

Add a Firebase project

Enable Firebase features on your existing GCP project.

  • console.firebase.google.com > Add project
  • Pick the existing GCP project
  • Choose whether to enable Google Analytics (recommended)
  • Link an Analytics account (new or existing)
03

BILLING

Upgrade plan (if needed)

External API calls and Storage require Blaze.

  • Plan > Upgrade > Blaze pay-as-you-go
  • Attach a billing account (add a card)
  • Set budget alerts ($10 / $50 / $100 monthly)
  • FCM / Auth / Firestore free quotas still apply on Spark
04

APP

Register iOS / Android apps

Download a config file for each platform.

  • iOS: enter bundle ID, download GoogleService-Info.plist
  • Android: package name + SHA-1 (keystore), download google-services.json
  • Web: enter an app nickname, copy the firebaseConfig snippet
  • Place config files at project root / Android app/ folder
05

PUSH

FCM push setup

Push notifications via FCM (Firebase Cloud Messaging), free of charge.

  • iOS: upload APNs auth key (.p8) — Apple Developer account required
  • Provide Key ID and Team ID as well
  • Android: works out of the box with google-services.json
  • Server key is under Cloud Messaging settings
06

AUTH

Enable Authentication

Turn on sign-in methods.

  • Email/password, Google, Apple, Facebook, phone, etc.
  • OAuth configuration per provider (Apple requires a Service ID from Apple Developer)
  • Add authorized domains (localhost is auto-included for local testing)
  • Review default security rules
07

DATABASE

Firestore / Realtime DB

Pick a data store and create it.

  • Firestore: document-based, recommended for most services
  • Realtime Database: when real-time sync is central
  • Region: asia-northeast3 (Seoul) recommended
  • Start mode: production (strict) or test (open) — always use production
  • Security Rules are mandatory
08

ADMIN

Service account / Admin SDK key

Server-side Admin SDK needs a service account key.

  • Project settings > Service accounts > Generate new private key
  • Download the .json file (shown only once)
  • Never commit to Git — use .env or Secret Manager
  • On Vercel, store the full JSON as base64 env or split into individual fields

Pitfalls

Common blockers

Forced Spark → Blaze upgrade

Deploying Cloud Functions or calling external APIs requires Blaze. Deploys will fail without a registered card.

iOS push fails without APNs key

On iOS, FCM converts APNs (Apple Push Notification) tokens into FCM tokens. Issue an APNs auth key (.p8) from Apple Developer first.

google-services.json hygiene

The file itself can be public, but it carries your Android SHA-1 — manage it alongside related values. The service account JSON, however, must never be exposed.

Default Security Rules left open

If test mode (open) is left in place, anyone can read your DB. Switch to production rules immediately.

Region is permanent

Firestore/Storage region is fixed at project creation. Choose Seoul if you serve Korean users.

If setup is a headache, we'll handle it

Projects at JAICYLAB include everything from developer account setup to launch and ops.