Firebase CLI āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ

Firebase āϏāĻŋāĻāϞāφāχ ( āĻ—āĻŋāϟāĻšāĻžāĻŦ ) āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž, āĻĻ⧇āĻ–āĻžāϰ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāϪ⧇āϰ āϏāϰāĻžā§āϜāĻžāĻŽ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤

Firebase CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āφāϗ⧇, āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύ āĨ¤

CLI āϏ⧇āϟ āφāĻĒ āĻŦāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύ

Firebase āϏāĻŋāĻāϞāφāχ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ

āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ, āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻžāϰ āĻ¸ā§āϤāϰ āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽā§‡āϞ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āφāĻĒāύāĻŋ āϝ⧇āĻ­āĻžāĻŦ⧇āχ CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ āύāĻž āϕ⧇āύ, āφāĻĒāύāĻžāϰ āĻāĻ•āχ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻāĻŦāĻ‚ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

āωāχāĻ¨ā§āĻĄā§‹āϜ āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ āϞāĻŋāύāĻžāĻ•ā§āϏ

āϜāĻžāύāĻžāϞāĻž

āφāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡āϰ āϜāĻ¨ā§āϝ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻŋāĻŦāϰāĻŖ āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ...
āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ CLI āĻāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύāĨ¤ āϤāĻžāϰāĻĒāϰ, āφāĻĒāύāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻļ⧇āϞ āϖ⧁āϞāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āϝ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤ āύāϤ⧁āύ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž

āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž Node.js āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇āύ āύāĻž āĻŦāĻž āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āĻĒāϰāĻŋāϚāĻŋāϤ
npm āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏāĻ•ā§āώāĻŽ āĻ•āϰāϤ⧇ npm (āύ⧋āĻĄ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ Node.js āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž

āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ

Firebase CLI āĻāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻāĻŦāĻ‚ āϰāĻžāύ āĻ•āϰāϤ⧇, āĻāχ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ:

  1. āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡āϰ āϜāĻ¨ā§āϝ Firebase CLI āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύāĨ¤

  2. āĻŦāĻžāχāύāĻžāϰāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻļ⧇āϞ āϖ⧁āϞ⧁āύ āϝ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤

  3. āϞāĻ— āχāύ āĻ•āϰ⧇ CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤

npm āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇

Firebase āϏāĻŋāĻāϞāφāχ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ npm (āύ⧋āĻĄ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, āĻāχ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ:

  1. nvm-windows (āύ⧋āĻĄ āĻ­āĻžāĻ°ā§āϏāύ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Node.js āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύāĨ¤ Node.js āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ npm āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϟ⧁āϞ āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

  2. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ npm āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ:

    npm install -g firebase-tools

    āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϕ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇āĨ¤

  3. āϞāĻ— āχāύ āĻ•āϰ⧇ CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤

āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ āĻŦāĻž āϞāĻŋāύāĻžāĻ•ā§āϏ

āφāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ macOS āĻŦāĻž Linux āĻāϰ āϜāĻ¨ā§āϝ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦāĻŋāĻŦāϰāĻŖ āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ...
āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύ āϝāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇, āϏāĻ°ā§āĻŦāĻļ⧇āώ CLI āϰāĻŋāϞāĻŋāϜ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ āύāϤ⧁āύ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž

āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž Node.js āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇āύ āύāĻž āĻŦāĻž āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āĻĒāϰāĻŋāϚāĻŋāϤ

āĻāĻ•āϟāĻŋ CI/CD āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž
āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ CLI āĻāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύāĨ¤ āϤāĻžāϰāĻĒāϰ, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻ°ā§āĻŽāĻĒā§āϰāĻŦāĻžāĻš āĻ…āύ⧁āϏāĻžāϰ⧇ āĻŦāĻžāχāύāĻžāϰāĻŋāϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻāĻŦāĻ‚ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāϜāϝ⧋āĻ—ā§āϝ āĻ•āĻ°ā§āĻŽāĻĒā§āϰāĻŦāĻžāĻš
npm āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏāĻ•ā§āώāĻŽ āĻ•āϰāϤ⧇ npm (āύ⧋āĻĄ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ Node.js āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž

āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ

āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇, āĻāχ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ:

  1. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ cURL āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

    curl -sL https://firebase.tools | bash

    āĻāχ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇, āϏāĻ°ā§āĻŦāĻļ⧇āώ Firebase CLI āϰāĻŋāϞāĻŋāϜ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤

  2. āϞāĻ— āχāύ āĻ•āϰ⧇ CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤

āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āωāĻĻāĻžāĻšāϰāĻŖ āĻāĻŦāĻ‚ āĻŦāĻŋāĻļāĻĻ⧇āϰ āϜāĻ¨ā§āϝ, firebase.tools āĻ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄāϟāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤

āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ

āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase CLI āĻāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻāĻŦāĻ‚ āϰāĻžāύ āĻ•āϰāϤ⧇, āĻāχ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ:

  1. āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ Firebase CLI āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύ: macOS | Linux

  2. (āϐāĻšā§āĻ›āĻŋāĻ•) āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύāĨ¤

    1. chmod +x ./firebase_tools āϚāĻžāϞāĻŋāϝāĻŧ⧇ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻ•āϰ⧁āύāĨ¤
    2. āφāĻĒāύāĻžāϰ PATH-āϤ⧇ āĻŦāĻžāχāύāĻžāϰāĻŋāϰ āĻĒāĻĨ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤
  3. āϞāĻ— āχāύ āĻ•āϰ⧇ CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤

npm āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇

Firebase āϏāĻŋāĻāϞāφāχ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ npm (āύ⧋āĻĄ āĻĒā§āϝāĻžāϕ⧇āϜ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, āĻāχ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ:

  1. nvm (āύ⧋āĻĄ āĻ­āĻžāĻ°ā§āϏāύ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Node.js āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύāĨ¤
    Node.js āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϞ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ npm āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϟ⧁āϞ āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

  2. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ npm āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ:

    npm install -g firebase-tools

    āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āωāĻĒāϞāĻŦā§āϧ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϕ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇āĨ¤

  3. āϞāĻ— āχāύ āĻ•āϰ⧇ CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāύāĨ¤

āϞāĻ— āχāύ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ Firebase CLI āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ

CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāϰ āĻĒāϰ, āφāĻĒāύāĻžāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

  1. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻžāϰ āϗ⧁āĻ—āϞ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ⧇ āϞāĻ— āχāύ āĻ•āϰ⧁āύ:

    firebase login

    āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻŽā§‡āĻļāĻŋāύāϕ⧇ Firebase-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

  2. āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ āϝ⧇ CLI āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āφāϛ⧇ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϛ⧇āĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

    firebase projects:list

    āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āϤāĻžāϞāĻŋāĻ•āĻžāϟāĻŋ Firebase āĻ•āύāϏ⧋āϞ⧇ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϰ āĻŽāϤ⧋āχ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤

āϏāĻ°ā§āĻŦāĻļ⧇āώ CLI āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύ

āϏāĻžāϧāĻžāϰāĻŖāϤ, āφāĻĒāύāĻŋ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻšāĻžāϞāύāĻžāĻ—āĻžāĻĻāĻ•ā§ƒāϤ Firebase CLI āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤

āφāĻĒāύāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ CLI āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŦ⧇āύ āϤāĻž āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇āϛ⧇āύ āϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤

āϜāĻžāύāĻžāϞāĻž

āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ

  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ : curl -sL https://firebase.tools | upgrade=true bash

  • āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ : āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύ , āϤāĻžāϰāĻĒāϰ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤

  • npm : npm install -g firebase-tools āϚāĻžāϞāĻžāύ

āϞāĻŋāύāĻžāĻ•ā§āϏ

  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ : curl -sL https://firebase.tools | upgrade=true bash

  • āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ : āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύ , āϤāĻžāϰāĻĒāϰ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤

  • npm : npm install -g firebase-tools āϚāĻžāϞāĻžāύ

Firebase āϏāĻŋāĻāϞāφāχ āφāύāχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ

āφāĻĒāύāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ CLI āφāύāχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻŦ⧇āύ āϤāĻž āφāĻĒāύāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇āϛ⧇āύ āϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤

āϜāĻžāύāĻžāϞāĻž

  • āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ : āφāĻĒāύāĻžāϰ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž firebase.exe āĻŦāĻžāχāύāĻžāϰāĻŋāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύāĨ¤
  • npm : npm uninstall -g firebase-tools āϚāĻžāϞāĻžāύ

āĻŽā§āϝāĻžāĻ•āĻ“āĻāϏ

  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ : curl -sL https://firebase.tools | uninstall=true bash

  • āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ : āφāĻĒāύāĻžāϰ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž firebase āĻŦāĻžāχāύāĻžāϰāĻŋāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ PATH āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āĻāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āϝ⧋āĻ— āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āϭ⧁āϞāĻŦ⧇āύ āύāĻžāĨ¤

  • npm : npm uninstall -g firebase-tools āϚāĻžāϞāĻžāύ

āϞāĻŋāύāĻžāĻ•ā§āϏ

  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ : curl -sL https://firebase.tools | uninstall=true bash

  • āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŦāĻžāχāύāĻžāϰāĻŋ : āφāĻĒāύāĻžāϰ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž firebase āĻŦāĻžāχāύāĻžāϰāĻŋāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ PATH āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇ āĻāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āϝ⧋āĻ— āĻ•āϰ⧇ āĻĨāĻžāϕ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āϭ⧁āϞāĻŦ⧇āύ āύāĻžāĨ¤

  • npm : npm uninstall -g firebase-tools āϚāĻžāϞāĻžāύ

CI āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϏāĻžāĻĨ⧇ CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

CI āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϏāĻžāĻĨ⧇ CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āφāĻŽāϰāĻž āφāĻĒāύāĻžāϕ⧇ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰāĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤

(āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ) āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

Firebase CLI āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāĻ•āϞ⧇ āϤāĻž āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āĨ¤ CI āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻšā§‡āĻĄāϞ⧇āϏ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ CLI āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāϪ⧇āϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āωāĻĒāĻžāϝāĻŧ āĻšāϞ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āĨ¤

(āωāĻ¤ā§āϤāϰāĻžāϧāĻŋāĻ•āĻžāϰ) FIREBASE_TOKEN āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ­āĻžāĻŦ⧇, āφāĻĒāύāĻŋ FIREBASE_TOKEN āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ•āĻŽ āύāĻŋāϰāĻžāĻĒāĻĻ āĻāĻŦāĻ‚ āφāϰ āϏ⧁āĻĒāĻžāϰāĻŋāĻļ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤

  1. āĻŦā§āϰāĻžāωāϜāĻžāϰāϝ⧁āĻ•ā§āϤ āĻŽā§‡āĻļāĻŋāύ⧇, Firebase CLI āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ āĨ¤

  2. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϏāĻžāχāύ āχāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ:

    firebase login:ci
  3. āĻĒā§āϰāĻĻāĻ¤ā§āϤ URL āϟāĻŋ āĻĻ⧇āϖ⧁āύ, āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϞāĻ— āχāύ āĻ•āϰ⧁āύāĨ¤

  4. āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϰāĻŋāĻĢā§āϰ⧇āĻļ āĻŸā§‹āϕ⧇āύ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧁āύāĨ¤ āĻŦāĻ°ā§āϤāĻŽāĻžāύ CLI āϏ⧇āĻļāύ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāĻŦ⧇ āύāĻžāĨ¤

  5. āφāĻĒāύāĻžāϰ CI āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āφāωāϟāĻĒ⧁āϟ āĻŸā§‹āϕ⧇āύāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝ āωāĻĒāĻžāϝāĻŧ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤

  6. firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύ⧋āϰ āϏāĻŽāϝāĻŧ āĻāχ āĻŸā§‹āϕ⧇āύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĻ⧁āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ⧇āϰ āϝ⧇āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

    • āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ ā§§: āĻŸā§‹āϕ⧇āύāϟāĻŋāϕ⧇ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ FIREBASE_TOKEN āĻšāĻŋāϏ⧇āĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŸā§‹āϕ⧇āύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āĨ¤

    • āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ ā§¨: āφāĻĒāύāĻžāϰ CI āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ --token TOKEN āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻĻāĻŋāϝāĻŧ⧇ āϏāĻŽāĻ¸ā§āϤ firebase āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύāĨ¤
      āĻŸā§‹āϕ⧇āύ āϞ⧋āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāϟāĻŋ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ⧇āϰ āĻ•ā§āϰāĻŽ: āĻĒāϤāĻžāĻ•āĻž, āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ, āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāĨ¤

āĻāĻ•āϟāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻ…āύ⧇āĻ• āϏāĻžāϧāĻžāϰāĻŖ āĻ•āĻžāϜ, āϝ⧇āĻŽāύ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āφāĻĒāύāĻŋ firebase init āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āύāĨ¤ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āφāĻĒāύāĻžāϰ āϏ⧋āĻ°ā§āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āϰ⧁āĻŸā§‡āϰ āĻŽāϤ⧋ āĻāĻ•āχ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻšāϝāĻŧ āĻāĻŦāĻ‚ firebase init āϚāĻžāϞāĻžāύ⧋āϰ āĻĒāϰ⧇, āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āĻĨāĻžāϕ⧇āĨ¤

āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ⧇āϰ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

firebase init

firebase init āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ Firebase āĻĒāĻŖā§āϝ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϧāĻžāĻĒāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ, Firebase CLI āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻžāϜāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāϤ⧇ āĻŦāϞ⧇:

  • āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύāĨ¤

    āĻāχ āϧāĻžāĻĒāϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āϝāĻžāϤ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ (āϝ⧇āĻŽāύ firebase deploy ) āωāĻĒāϝ⧁āĻ•ā§āϤ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϚāϞ⧇āĨ¤

    āĻāĻ•āχ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ (āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ) āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻžāĻ“ āϏāĻŽā§āĻ­āĻŦāĨ¤

  • āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Firebase āĻĒāĻŖā§āϝ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύāĨ¤

    āĻāχ āϧāĻžāĻĒ⧇ āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āĻĒāĻŖā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻŦāϞāĻž āĻšāĻŦ⧇āĨ¤ āĻāχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ, āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāĻŖā§āϝ⧇āϰ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, Hosting ) āĻĻ⧇āϖ⧁āύāĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āφāĻĒāύāĻŋ āφāϰāĻ“ Firebase āĻĒāĻŖā§āϝ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāϰ⧇ āϏāĻ°ā§āĻŦāĻĻāĻž firebase init āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āφāϰāĻŽā§āϭ⧇āϰ āĻļ⧇āώ⧇, Firebase āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ…ā§āϝāĻžāĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻŽā§‚āϞ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĻ⧁āϟāĻŋ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇:

  • āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āϝāĻž āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤

  • āĻāĻ•āϟāĻŋ .firebaserc āĻĢāĻžāχāϞ āϝāĻž āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤

firebase.json āĻĢāĻžāχāϞ

firebase init āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϰ⧁āĻŸā§‡ āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

firebase.json āĻĢāĻžāχāϞāϟāĻŋ Firebase CLI-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻĻ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āϕ⧋āύ āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāĻ‚āϏ āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āĻ•āĻŋāϛ⧁ āϏ⧇āϟāĻŋāĻ‚āϏ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻŦāĻž Firebase āĻ•āύāϏ⧋āϞ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻžāχ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϝ⧇ āφāĻĒāύāĻŋ āϝ⧇āϕ⧋āύ⧋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇āϛ⧇āύāĨ¤

āφāĻĒāύāĻŋ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— Firebase Hosting āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϏāϰāĻžāϏāϰāĻŋ firebase.json āĻĢāĻžāχāϞ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āϤāĻŦ⧇, Firebase CLI āĻĻāĻŋāϝāĻŧ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŽāύ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, firebase init āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ āϏ⧇āχ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϏ⧇āϟāĻŋāĻ‚āϏ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝ⧇āĻŽāύ Cloud Functions āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ index.js āĻĢāĻžāχāϞāĨ¤ āφāĻĒāύāĻŋ firebase.json āĻĢāĻžāχāϞ⧇ predeploy āĻŦāĻž postdeploy āĻšā§āĻ•āĻ“ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ firebase.json āĻĢāĻžāχāϞāϟāĻŋ āĻ…āύ⧇āĻ• Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āωāĻĻāĻžāĻšāϰāĻŖāĨ¤ āĻāϟāĻŋ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϕ⧋āĻĄāĻŦ⧇āϏ Cloud Functions , Local Emulator Suite āϏ⧇āϟāφāĻĒ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ Remote Config āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āĻŽāϤ⧋ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāĻ“ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āϝ⧇āϕ⧋āύ⧋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ firebase.json āĻĢāĻžāχāϞ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏ⧇āχ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĨāĻžāĻ•āĻŦ⧇ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ Firebase Hosting āĻāĻŦāĻ‚ Cloud Functions )āĨ¤ $schema āϕ⧀ āϝ⧋āĻ— āĻ•āϰāϞ⧇ āĻ…āύ⧇āĻ• āϕ⧋āĻĄ āĻāĻĄāĻŋāϟāϰ⧇ āĻŦ⧈āϧāϤāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϏāĻŽāĻžāĻĒā§āϤāĻŋ āϏāĻŽā§āĻ­āĻŦ āĻšāϝāĻŧāĨ¤

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

āϝāĻĻāĻŋāĻ“ firebase.json āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ --config PATH āĻĢā§āĻ˛ā§āϝāĻžāĻ—āϟāĻŋ āĻĒāĻžāϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻāĻ•āĻžāϧāĻŋāĻ• Cloud Firestore āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ

āϝāĻ–āύ āφāĻĒāύāĻŋ firebase init āϚāĻžāϞāĻžāĻŦ⧇āύ, āϤāĻ–āύ āφāĻĒāύāĻžāϰ firebase.json āĻĢāĻžāχāϞ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• firestore āϕ⧀ āĻĨāĻžāĻ•āĻŦ⧇, āϝ⧇āĻŽāύāϟāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āωāĻĻāĻžāĻšāϰāϪ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻāĻ•āĻžāϧāĻŋāĻ• Cloud Firestore āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ Cloud Firestore Security Rules āĻāĻŦāĻ‚ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āχāύāĻĄā§‡āĻ•ā§āϏ āϏ⧋āĻ°ā§āϏ āĻĢāĻžāχāϞ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āφāĻĒāύāĻžāϰ firebase.json āĻĢāĻžāχāϞāϟāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰ⧁āύāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āϏāĻš āĻāĻ•āϟāĻŋ JSON āĻ…ā§āϝāĻžāϰ⧇ āĻĻāĻŋāϝāĻŧ⧇ āĻĢāĻžāχāϞāϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧁āύāĨ¤

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϏāĻŽāϝāĻŧ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Cloud Functions āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ

āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϏāĻŽāϝāĻŧ, CLI āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ functions āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇ āϝāĻž āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ āĻāϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻŦāĻšāĻŋāϰāĻžāĻ—āϤ āĻĢāĻžāχāϞ āĻ¸ā§āĻĨāĻžāĻĒāύāϕ⧇ āĻŦāĻžāϧāĻž āĻĻ⧇āϝāĻŧ āϝāĻž āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĄā§‡āϟāĻž āφāĻ•āĻžāϰ āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧ⧇ āϤ⧁āϞāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž, JSON āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, āĻšāϞ:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ firebase.json āĻ ignore āĻāϰ āϜāĻ¨ā§āϝ āύāĻŋāϜāĻ¸ā§āĻŦ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŽāĻžāύ āϝ⧋āĻ— āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϝ⧇ āφāĻĒāύāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ āĻĻ⧇āĻ–āĻžāύ⧋ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻžāϟāĻŋ āϰ⧇āϖ⧇āϛ⧇āύ (āĻ…āĻĨāĻŦāĻž āϝāĻĻāĻŋ āĻāϟāĻŋ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āϝ⧋āĻ— āĻ•āϰ⧁āύ)āĨ¤

āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧁āύ

āφāĻĒāύāĻŋ āĻāĻ•āχ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻāĻŦāĻ‚ āĻ‰ā§ŽāĻĒāĻžāĻĻāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻ¨ā§āϝāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāχāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āφāĻĒāύāĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāύ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āφāϗ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āϝāĻžāϚāĻžāχ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ firebase use āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āφāĻĒāύāĻžāϕ⧇ āωāĻĒāύāĻžāĻŽāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāĻžāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āύāϤ⧁āύ āωāĻĒāύāĻžāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āωāĻĒāύāĻžāĻŽ āϝ⧋āĻ— āĻ•āϰ⧁āύ

āϝāĻ–āύ āφāĻĒāύāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ āĻāĻ•āϟāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āύ, āϤāĻ–āύ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ default āωāĻĒāύāĻžāĻŽ āĻšāĻŋāϏ⧇āĻŦ⧇ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āχ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

firebase use --add

āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋāϕ⧇ alias āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāϤ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻŦ⧇āĨ¤ Alias ​​āĻ…ā§āϝāĻžāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻ­āĻŋāϤāϰ⧇ āĻāĻ•āϟāĻŋ .firebaserc āĻĢāĻžāχāϞ⧇ āϞ⧇āĻ–āĻž āĻšāϝāĻŧāĨ¤

āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ

āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϝ⧇āϕ⧋āύ⧋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
firebase use āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āωāĻĒāύāĻžāĻŽā§‡āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĻ⧇āϖ⧁āύ
firebase use \
PROJECT_ID|ALIAS
āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤
CLI āĻāχ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋāϕ⧇ "āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ" āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤
firebase use --clear āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āϏāĻžāĻĢ āĻ•āϰ⧇āĨ¤

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ CLI āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύ⧋āϰ āφāϗ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏ⧇āϟ āĻ•āϰāϤ⧇ firebase use PROJECT_ID|ALIAS āϚāĻžāϞāĻžāύāĨ¤

firebase use \
--unalias PROJECT_ALIAS
āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āωāĻĒāύāĻžāĻŽ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āφāĻĒāύāĻŋ āϝ⧇āϕ⧋āύ⧋ CLI āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāϝāĻŧ⧇ --project āĻĢā§āĻ˛ā§āϝāĻžāĻ— āĻĒāĻžāϏ āĻ•āϰ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋāϕ⧇ āĻ“āĻ­āĻžāϰāϰāĻžāχāĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ: āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ CLI āϕ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝāĻž āφāĻĒāύāĻŋ staging āωāĻĒāύāĻžāĻŽ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āϛ⧇āύāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ prod āωāĻĒāύāĻžāĻŽ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻž Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ firebase deploy --project=prod āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ,āĨ¤

āĻ‰ā§ŽāϏ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽ

āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āφāĻĒāύāĻžāϰ āĻĻāϞāϕ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽāϗ⧁āϞāĻŋ āĻ­āĻžāĻ— āĻ•āϰ⧇ āύ⧇āĻ“āϝāĻŧāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ .firebaserc āĻĢāĻžāχāϞāϟāĻŋ āϏ⧋āĻ°ā§āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ āϤāĻŦ⧇, āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻŦāĻž āĻ¸ā§āϟāĻžāĻ°ā§āϟāĻžāϰ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āĻŸā§‡āϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϰ āϏāĻžāϧāĻžāϰāĻŖāϤ .firebaserc āĻĢāĻžāχāϞāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āωāϚāĻŋāϤ āύāϝāĻŧāĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻāĻŽāύ āϕ⧋āύāĻ“ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĨāĻžāϕ⧇ āϝāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ --project āĻĢā§āĻ˛ā§āϝāĻžāĻ—āϟāĻŋ āĻĒāĻžāϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻ…āĻĨāĻŦāĻž Firebase āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āϕ⧋āύāĻ“ āωāĻĒāύāĻžāĻŽ āĻŦāϰāĻžāĻĻā§āĻĻ āύāĻž āĻ•āϰ⧇āχ firebase use PROJECT_ID āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĒāϰāĻŋāĻŦ⧇āĻļāύ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ

āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āĻšā§‹āĻ¸ā§āϟ āĻ•āϰāĻž URL āϗ⧁āϞāĻŋāϤ⧇ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ firebase serve āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āĻĢā§āĻ˛ā§āϝāĻžāϗ⧇ āĻ•āĻŽāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻĒ⧃āĻĨāĻ• āĻ•āϰāĻž āϤāĻžāϞāĻŋāĻ•āĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻžāϜāϗ⧁āϞāĻŋāϰ āϝ⧇āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāύ āϤāĻŦ⧇ āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϰ⧁āϟ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

  • āφāĻĒāύāĻžāϰ Firebase-āĻšā§‹āĻ¸ā§āĻŸā§‡āĻĄ āĻ…ā§āϝāĻžāĻĒ⧇āϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻĻ⧇āϖ⧁āύāĨ¤
  • Firebase Hosting āϜāĻ¨ā§āϝ āĻ—āϤāĻŋāĻļā§€āϞ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ Cloud Functions āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ (āĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ) HTTP āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ URL-āĻ Hosting āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāύāĨ¤
firebase serve --only hosting

āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ HTTP āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰ⧁āύ

āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ HTTP āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰāϤ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϝ⧇āϕ⧋āύ⧋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāύāĨ¤

  • āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ URL-āĻ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϜāĻ¨ā§āϝ HTTP āĻĢāĻžāĻ‚āĻļāύ āĻāĻŦāĻ‚ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰāϤ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋāϰ āϝ⧇āϕ⧋āύ⧋ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ HTTP āĻĢāĻžāĻ‚āĻļāύ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰāϤ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ:

    firebase serve --only functions

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ

āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, firebase serve āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ localhost āĻĨ⧇āϕ⧇ āφāϏāĻž āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϜāĻŦāĻžāĻŦ āĻĻ⧇āϝāĻŧāĨ¤ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āĻ“āϝāĻŧ⧇āĻŦ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻĨ⧇āϕ⧇ āφāĻĒāύāĻžāϰ āĻšā§‹āĻ¸ā§āϟ āĻ•āϰāĻž āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻžāϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āύāϝāĻŧāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ --host āĻĒāϤāĻžāĻ•āĻžāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āϝ⧇āĻŽāύ:

firebase serve --host 0.0.0.0  // accepts requests to any host

āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύ

Firebase CLI āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āϕ⧋āĻĄ āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒāĻĻ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āĻ•āĻžāϜ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇:

  • āφāĻĒāύāĻžāϰ Firebase Hosting āϏāĻžāχāĻŸā§‡āϰ āύāϤ⧁āύ āĻĒā§āϰāĻ•āĻžāĻļāύāĻž
  • Cloud Functions for Firebase
  • Firebase Data Connect āϜāĻ¨ā§āϝ āύāϤ⧁āύ āĻŦāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻāĻŦāĻ‚ āϏāĻ‚āϝ⧋āĻ—āĻ•āĻžāϰ⧀
  • Firebase Realtime Database āύāĻŋāϝāĻŧāĻŽ
  • Cloud Storage for Firebase āύāĻŋāϝāĻŧāĻŽ
  • Cloud Firestore āύāĻŋāϝāĻŧāĻŽ
  • Cloud Firestore āϜāĻ¨ā§āϝ āϏ⧂āĻšā§€

āĻāĻ•āϟāĻŋ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāύ:

firebase deploy

āφāĻĒāύāĻŋ āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŽāĻ¨ā§āϤāĻŦā§āϝ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāχ āĻŽāĻ¨ā§āϤāĻŦā§āϝāϟāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ Firebase Hosting āĻĒ⧃āĻˇā§āĻ āĻžāϝāĻŧ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϤāĻĨā§āϝ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāĻŦ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

firebase deploy -m "Deploying the best new feature ever."

āϝāĻ–āύ āφāĻĒāύāĻŋ firebase deploy āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ, āϤāĻ–āύ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻšā§‡āϤāύ āĻĨāĻžāϕ⧁āύ:

  • āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇, āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ firebase.json āĻĢāĻžāχāϞ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇ āĨ¤ āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ firebase init āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻā§āĻŦāĻžāϰāĻž āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

  • āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, firebase deploy āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āϏāĻŽāĻ¸ā§āϤ āĻ¸ā§āĻĨāĻžāĻĒāύāϝ⧋āĻ—ā§āϝ āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϰāĻŋāϞāĻŋāϜ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻž āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇, āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĨ¤

āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āύāĻŋāϝāĻŧāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ

Firebase Realtime Database , Cloud Storage for Firebase āĻāĻŦāĻ‚ Cloud Firestore āϜāĻ¨ā§āϝ, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻŦāĻž Firebase āĻ•āύāϏ⧋āϞ⧇ āϏ⧁āϰāĻ•ā§āώāĻž āύāĻŋāϝāĻŧāĻŽāϗ⧁āϞāĻŋ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻāĻĄāĻŧāĻžāϤ⧇ āφāϰ⧇āĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāϞ āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ Firebase āĻ•āύāϏ⧋āϞ⧇ āύāĻŋāϝāĻŧāĻŽ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻžāĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϕ⧋āϟāĻž

āĻāϟāĻž āϏāĻŽā§āĻ­āĻŦ (āϝāĻĻāĻŋāĻ“ āĻ…āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ) āϝ⧇ āφāĻĒāύāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϕ⧋āϟāĻž āĻ…āϤāĻŋāĻ•ā§āϰāĻŽ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝāĻž āφāĻĒāύāĻžāϰ Firebase āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϞāĻžāĻĒ⧇āϰ āĻšāĻžāϰ āĻŦāĻž āĻ­āϞāĻŋāωāĻŽāϕ⧇ āϏ⧀āĻŽāĻŋāϤ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āϏāĻ‚āĻ–ā§āϝāĻ• āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ HTTP 429 Quota āĻ¤ā§āϰ⧁āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻāχ āϧāϰāύ⧇āϰ āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ, āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĻ⧇āϖ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āϰ⧋āϞ āĻŦā§āϝāĻžāĻ• āĻ•āϰ⧁āύ

āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡āϰ Firebase Hosting āĻĒ⧃āĻˇā§āĻ āĻž āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āϰāĻŋāϞāĻŋāĻœā§‡āϰ āϜāĻ¨ā§āϝ āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āĻ…ā§āϝāĻžāĻ•āĻļāύ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ Firebase Hosting āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āϰ⧋āϞāĻŦā§āϝāĻžāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

Firebase Realtime Database , Cloud Storage for Firebase , āĻ…āĻĨāĻŦāĻž Cloud Firestore āϜāĻ¨ā§āϝ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āύāĻŋāϝāĻŧāĻŽā§‡āϰ āϰāĻŋāϞāĻŋāϜ āϰ⧋āϞ āĻŦā§āϝāĻžāĻ• āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āύāϝāĻŧāĨ¤

āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύ

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻž āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āϚāĻžāύ, āϤāĻžāĻšāϞ⧇ āφāĻĒāύāĻŋ firebase deploy āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āĻĢā§āĻ˛ā§āϝāĻžāϗ⧇ āĻ•āĻŽāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻĒ⧃āĻĨāĻ• āĻ•āϰāĻž āϤāĻžāϞāĻŋāĻ•āĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ Firebase Hosting āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻāĻŦāĻ‚ Cloud Storage āϏ⧁āϰāĻ•ā§āώāĻž āύāĻŋāϝāĻŧāĻŽ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤

firebase deploy --only hosting,storage

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŸā§‡āĻŦāĻŋāϞ⧇ āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻāĻŦāĻ‚ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āĻĢā§āĻ˛ā§āϝāĻžāϗ⧇āϰ āύāĻžāĻŽāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϰ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ⧇āϰ āϕ⧀āϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āϝāĻžā§ŸāĨ¤

āĻĢā§āĻ˛ā§āϝāĻžāĻ— āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻž āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇
--only hosting Firebase Hosting āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ
--only database Firebase Realtime Database āύāĻŋāϝāĻŧāĻŽ
--only dataconnect Firebase Data Connect āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻāĻŦāĻ‚ āϏāĻ‚āϝ⧋āĻ—āĻ•āĻžāϰ⧀
--only storage Cloud Storage for Firebase
--only firestore āϏāĻŽāĻ¸ā§āϤ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ Cloud Firestore āύāĻŋāϝāĻŧāĻŽ āĻāĻŦāĻ‚ āϏ⧂āĻšā§€
--only functions Cloud Functions for Firebase ( āĻāχ āĻĒāϤāĻžāĻ•āĻžāϰ āφāϰāĻ“ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϏāĻŽā§āĻ­āĻŦ)

āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύ

āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

āφāϰ⧇āĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšāϞ āφāĻĒāύāĻžāϰ /functions/index.js āĻĢāĻžāχāϞ⧇ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ—ā§āϰ⧁āĻĒ⧇ āĻ—ā§āϰ⧁āĻĒ āĻ•āϰāĻžāĨ¤ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻ—ā§āϰ⧁āĻĒ āĻ•āϰāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ groupA āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ groupB āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇, āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• functions/groupB.js āĻĢāĻžāχāϞ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟāĻ­āĻžāĻŦ⧇ groupB āĻāϰ āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϏāĻŽāĻ¸ā§āϤ groupA āĻĢāĻžāĻ‚āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

firebase deploy --only functions:groupA

āĻ…āĻĨāĻŦāĻž āφāĻĒāύāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āĻ—ā§āϰ⧁āĻĒ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ:

firebase deploy --only functions:groupA.function1,groupB.function4

āĻĢāĻžāĻ‚āĻļāύ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύ

Firebase āϏāĻŋāĻāϞāφāχ āĻĒā§‚āĻ°ā§āĻŦ⧇ āĻŽā§‹āϤāĻžāϝāĻŧ⧇āύ āĻ•āϰāĻž āĻĢāĻžāĻ‚āĻļāύāϗ⧁āϞāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϕ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

  • āϏāĻŽāĻ¸ā§āϤ āĻ…āĻžā§āϚāϞ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āύāĻžāĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āĻŽā§‡āϞ⧇ āĻāĻŽāύ āϏāĻŽāĻ¸ā§āϤ āĻĢāĻžāĻ‚āĻļāύ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇:

    firebase functions:delete FUNCTION-1_NAME

  • āĻāĻ•āϟāĻŋ āύāύ-āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻ…āĻžā§āϚāϞ⧇ āϚāϞāĻŽāĻžāύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāĻ‚āĻļāύ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāĻžāĻ‚āĻļāύ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāĻ‚āĻļāύ āĻ—ā§āϰ⧁āĻĒ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇:

    firebase functions:delete GROUP_NAME

  • āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ āĻĒā§āϰāĻŽā§āĻĒāϟāϕ⧇ āĻŦāĻžāχāĻĒāĻžāϏ āĻ•āϰ⧇:

    firebase functions:delete FUNCTION-1_NAME --force

āĻĒā§āϰāĻŋ-āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāĻŦāĻ‚ āĻĒā§‹āĻ¸ā§āϟ-āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āĻĄ āϟāĻžāĻ¸ā§āĻ• āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύ

āφāĻĒāύāĻŋ āĻļ⧇āϞ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϗ⧁āϞāĻŋāϕ⧇ firebase deploy āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ predeploy āĻŦāĻž postdeploy āĻ•āĻžāϜāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ predeploy āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ TypeScript āϕ⧋āĻĄāϕ⧇ JavaScript-āĻ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ postdeploy āĻšā§āĻ• Firebase Hosting āĻ āύāϤ⧁āύ āϏāĻžāχāĻŸā§‡āϰ āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āĻŦāĻŋāώāϝāĻŧ⧇ āĻĒā§āϰāĻļāĻžāϏāĻ•āĻĻ⧇āϰ āĻ…āĻŦāĻšāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

predeploy āĻŦāĻž postdeploy āĻšā§āĻ• āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϰ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ⧇ bash āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϝ⧋āĻ— āĻ•āϰ⧁āύāĨ¤ āφāĻĒāύāĻŋ āϏāϰāĻžāϏāϰāĻŋ firebase.json āĻĢāĻžāχāϞ⧇ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ…āĻĨāĻŦāĻž āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋ āĻšāϞ firebase.json āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āϝāĻž āĻāĻ•āϟāĻŋ āĻĒā§‹āĻ¸ā§āϟāĻĄāĻŋāĻĒā§āϞāϝāĻŧ āϟāĻžāĻ¸ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āϝāĻž Firebase Hosting āĻ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ Slack āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

messageSlack.sh āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĢāĻžāχāϞāϟāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻĻ⧇āĻ–āϤ⧇ āĻāϰāĻ•āĻŽ:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

āφāĻĒāύāĻŋ āϝ⧇ āϕ⧋āύāĻ“ āĻ…ā§āϝāĻžāϏ⧇āĻŸā§‡āϰ āϜāĻ¨ā§āϝ predeploy āĻāĻŦāĻ‚ postdeploy āĻšā§āĻ• āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝāĻž āφāĻĒāύāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ firebase deploy āϚāĻžāϞāĻžāύ⧋ āφāĻĒāύāĻžāϰ firebase.json āĻĢāĻžāχāϞ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āϏāĻŽāĻ¸ā§āϤ predeploy āĻāĻŦāĻ‚ postdeploy āϟāĻžāĻ¸ā§āĻ• āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇āĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻ•āĻžāϜāϗ⧁āϞāĻŋ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ, āφāĻ‚āĻļāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĨ¤

predeploy āĻāĻŦāĻ‚ postdeploy āωāĻ­āϝāĻŧ āĻšā§āĻ•āχ āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āφāωāϟāĻĒ⧁āϟ āĻāĻŦāĻ‚ āĻāϰāϰ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞāĻŋ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰ⧁āύ:

  • āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŋāĻĄāĻĒā§āϞāϝāĻŧ āĻšā§āĻ• āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻž āĻ…āύ⧁āϝāĻžā§Ÿā§€ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻ°ā§āĻĨ āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āĻĄāĻŋāĻĒā§āϞ⧟āĻŽā§‡āĻ¨ā§āϟ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāĻž āĻšā§ŸāĨ¤
  • āϝāĻĻāĻŋ āϕ⧋āύāĻ“ āĻ•āĻžāϰāϪ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒā§‹āĻ¸ā§āϟāĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻšā§āĻ•āϗ⧁āϞāĻŋ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤

āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇āϰ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ

āĻĒā§āϰāĻŋāĻĄāĻĒā§āϞāϝāĻŧ āĻāĻŦāĻ‚ āĻĒā§‹āĻ¸ā§āϟāĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻšā§āĻ•āϗ⧁āϞāĻŋāϤ⧇ āϚāϞāĻŽāĻžāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāϰāĻŋāĻŦ⧇āĻļ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϗ⧁āϞāĻŋ āωāĻĒāϞāĻŦā§āϧ:

  • $GCLOUD_PROJECT : āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āφāχāĻĄāĻŋ
  • $PROJECT_DIR : firebase.json āĻĢāĻžāχāϞ āϧāĻžāϰāĻŖāĻ•āĻžāϰ⧀ āϰ⧁āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ
  • $RESOURCE_DIR : (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ hosting āĻāĻŦāĻ‚ functions āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ) āϝ⧇ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ Hosting āĻŦāĻž Cloud Functions āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻžāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ

āĻāĻ•āĻžāϧāĻŋāĻ• Realtime Database āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧁āύ

āĻāĻ•āϟāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• Firebase Realtime Database āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, CLI āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰ⧇āĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āύāύ-āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ --instance DATABASE_NAME āĻĒāϤāĻžāĻ•āĻžāĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ --instance āĻĒāϤāĻžāĻ•āĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ

CLI āĻĒā§āϰāĻļāĻžāϏāύāĻŋāĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āϏāĻžāĻšāĻžāĻ¯ā§āϝ CLI āĻ…āĻĨāĻŦāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤
init āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āϞāĻ—āχāύ āφāĻĒāύāĻžāϰ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ CLI āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤
localhost āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ āύāĻž āĻāĻŽāύ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ CLI-āϤ⧇ āϞāĻ— āχāύ āĻ•āϰāϤ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ --no-localhost āĻĒāϤāĻžāĻ•āĻžāĨ¤
āϞāĻ—āχāύ:ci āĻ…-āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻŸā§‹āϕ⧇āύ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āϞāĻ—āχāύ: āϝ⧋āĻ— āĻ•āϰ⧁āύ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āϞāĻ— āχāύ āĻ•āϰ⧇āĨ¤
āϞāĻ—āχāύ:āϤāĻžāϞāĻŋāĻ•āĻž āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāĻŽāĻžāĻŖāĻŋāϤ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤
āϞāĻ—āχāύ:āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤
āϞāĻ—āφāωāϟ CLI āĻĨ⧇āϕ⧇ āφāĻĒāύāĻžāϰ Google āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϏāĻžāχāύ āφāωāϟ āĻ•āϰ⧇āĨ¤
āĻ–ā§‹āϞāĻž āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻ–ā§‹āϞ⧇āĨ¤
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ: āϤāĻžāϞāĻŋāĻ•āĻž āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āφāϛ⧇ āĻāĻŽāύ āϏāĻŽāĻ¸ā§āϤ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϤāĻžāϞāĻŋāĻ•āĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āĻŦā§āϝāĻŦāĻšāĻžāϰ CLI-āĻāϰ āϜāĻ¨ā§āϝ āϏāĻ•ā§āϰāĻŋāϝāĻŧ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϏ⧇āϟ āĻ•āϰ⧇āĨ¤
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āωāĻĒāύāĻžāĻŽ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇āĨ¤

āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ: āĻ…ā§āϝāĻžāĻĄāĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ Google Cloud āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ Firebase āϰāĻŋāϏ⧋āĻ°ā§āϏ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ: āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Google Cloud āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϤāĻžāϰāĻĒāϰ āύāϤ⧁āύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ: āϤāĻžāϞāĻŋāĻ•āĻž āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āφāϛ⧇ āĻāĻŽāύ āϏāĻŽāĻ¸ā§āϤ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϤāĻžāϞāĻŋāĻ•āĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒāϏ (iOS, Android, āĻ“āϝāĻŧ⧇āĻŦ) āĻĒāϰāĻŋāϚāĻžāϞāύāĻž
āĻ…ā§āϝāĻžāĻĒāϏ: āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāϏ:āϤāĻžāϞāĻŋāĻ•āĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāĻŋāϤ Firebase āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāϏ: sdkconfig āĻāĻ•āϟāĻŋ Firebase āĻ…ā§āϝāĻžāĻĒ⧇āϰ Google āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤
āϏ⧇āϟāφāĻĒ: āĻ“āϝāĻŧ⧇āĻŦ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, apps:sdkconfig āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ web āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧁āύāĨ¤
āĻāĻ•āϟāĻŋ Firebase āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒ⧇āϰ Google āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤
SHA āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻšā§āϝāĻžāĻļ⧇āϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ)
āĻ…ā§āϝāĻžāĻĒāϏ: āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ: āĻļāĻž: āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ \
FIREBASE_APP_ID SHA_HASH
āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase Android āĻ…ā§āϝāĻžāĻĒ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ SHA āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻšā§āϝāĻžāĻļ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāϏ:āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ:āĻļāĻž:āĻŽā§āϛ⧁āύ \
FIREBASE_APP_ID SHA_HASH
āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase Android āĻ…ā§āϝāĻžāĻĒ āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ SHA āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻšā§āϝāĻžāĻļ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāϏ:āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ:āĻļāĻž:āϤāĻžāϞāĻŋāĻ•āĻž \
FIREBASE_APP_ID
āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Firebase Android āĻ…ā§āϝāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ SHA āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻšā§āϝāĻžāĻļāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āωāĻ¨ā§āύāϝāĻŧāύ

āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϕ⧇ āφāĻĒāύāĻžāϰ Firebase Hosting āϏāĻžāχāϟ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻāĻŦāĻ‚ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āĻĨ⧇āϕ⧇ āϕ⧋āĻĄ āĻāĻŦāĻ‚ āϏāĻŽā§āĻĒāĻĻ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āĻŸā§‡ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĨ¤ Firebase Hosting āĻāϰ āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤
āĻĒāϰāĻŋāĻŦ⧇āĻļāύ āĻ•āϰāĻž āφāĻĒāύāĻžāϰ Firebase Hosting āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĨ¤ Firebase Hosting āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ firebase.json āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

App Distribution āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāϟ \
--āĻ…ā§āϝāĻžāĻĒ FIREBASE_APP_ID
āĻĒāϰ⧀āĻ•ā§āώāĻ•āĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ˛ā§āĻĄāϟāĻŋ āωāĻĒāϞāĻŦā§āϧ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻĒāϰ⧀āĻ•ā§āώāĻ•:āϝ⧋āĻ— āĻ•āϰ⧁āύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻ• āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻĒāϰ⧀āĻ•ā§āώāĻ•:āϏāϰāĻžāύ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĨ⧇āϕ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻ•āĻĻ⧇āϰ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻĒāϰ⧀āĻ•ā§āώāĻ•:āϤāĻžāϞāĻŋāĻ•āĻž āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĒāϰ⧀āĻ•ā§āώāĻ•āĻĻ⧇āϰ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻ—ā§āϰ⧁āĻĒ:āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĻāĻ•āϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻ• āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻ—ā§āϰ⧁āĻĒ:āĻĄāĻŋāϞāĻŋāϟ āĻāĻ•āϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻ• āĻ—ā§‹āĻˇā§āĻ ā§€ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ:āĻ—ā§āϰ⧁āĻĒ:āϤāĻžāϞāĻŋāĻ•āĻž āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻ• āĻ—ā§‹āĻˇā§āĻ ā§€āϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤

App Hosting āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄāϏ: āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID \
--āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ REGION --āĻ…ā§āϝāĻžāĻĒ APP_ID
āĻāĻ•āϟāĻŋ App Hosting āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϏāĻŽāĻ¨ā§āĻŦāĻŋāϤ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āϕ⧋āĻĄāĻŦ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āϏāĻŽā§āĻĒāĻĻ⧇āϰ āϏāĻ‚āĻ—ā§āϰāĻš āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϕ⧇ āϤāĻžāϰ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒ āφāχāĻĄāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧁āύāĨ¤
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄāϏ:āϗ⧇āϟ \
BACKEND_ID \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID \
--āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ REGION
āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡āϰ āĻĒāĻžāĻŦāϞāĻŋāĻ• URL āϏāĻš āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦāĻŋāĻŦāϰāĻŖ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄāϏ:āϤāĻžāϞāĻŋāĻ•āĻž \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID
āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϏāĻŽāĻ¸ā§āϤ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰ⧇āĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄāϏ:āĻĄāĻŋāϞāĻŋāϟ \
BACKEND_ID \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID \
--āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ REGION
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇āĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚: āĻ•āύāĻĢāĻŋāĻ—: āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID \
--āĻ—ā§‹āĻĒāύ ENVIRONMENT_NAME
āĻ…ā§āϝāĻžāĻĒ āχāĻŽā§āϞ⧇āĻļāύ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ—ā§‹āĻĒāύ āϤāĻĨā§āϝ āϰāĻĒā§āϤāĻžāύāĻŋ āĻ•āϰ⧇āĨ¤
apphosting.yaml āĻ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ, āĻ…āĻĨāĻŦāĻž āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ apphosting āφāϛ⧇ āĻāĻŽāύ āϝ⧇āϕ⧋āύ⧋ āĻĒāϰāĻŋāĻŦ⧇āĻļ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ --secrets āύ⧇āϝāĻŧ apphosting. ENVIRONMENT_NAME .yaml āĻĢāĻžāχāϞāĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚: āϰ⧋āϞāφāωāϟ: āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ \
BACKEND_ID \
--āĻ—āĻŋāϟ_āĻļāĻžāĻ–āĻž BRANCH_NAME \
--āĻ—āĻŋāϟ_āĻ•āĻŽāĻŋāϟ COMMIT_ID
āĻāĻ•āϟāĻŋ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āϰ⧋āϞāφāωāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻļāĻžāĻ–āĻžāϰ āϏāĻ°ā§āĻŦāĻļ⧇āώ āĻ•āĻŽāĻŋāϟ āĻŦāĻž āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŽāĻŋāϟ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧁āύāĨ¤ āϝāĻĻāĻŋ āϕ⧋āύāĻ“ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒā§āϰāĻĻāĻžāύ āύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻļāĻžāĻ–āĻžāϰ āϤāĻžāϞāĻŋāĻ•āĻž āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āĻ…āύ⧁āϰ⧋āϧ āϜāĻžāύāĻžāύ⧋ āĻšāĻŦ⧇āĨ¤
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āϏāĻŋāĻ•ā§āϰ⧇āϟāϏ:āϏ⧇āϟ KEY --āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ PROJECT_ID \
--āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ REGION \
--āĻĄā§‡āϟāĻž-āĻĢāĻžāχāϞ DATA_FILE_PATH
āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ⧇ āĻ—ā§‹āĻĒāύ āωāĻĒāĻžāĻĻāĻžāύ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤
āϐāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ—ā§‹āĻĒāύ āϤāĻĨā§āϝ āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāĻĨ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧁āύāĨ¤ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āχāύāĻĒ⧁āϟ āĻĨ⧇āϕ⧇ āĻ—ā§‹āĻĒāύ āϤāĻĨā§āϝ āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ _ āϤ⧇ āϏ⧇āϟ āĻ•āϰ⧁āύāĨ¤
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚:āϏāĻŋāĻ•ā§āϰ⧇āϟāϏ:āĻ—ā§āϰāĻžāĻ¨ā§āϟāĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ KEY BACKEND_ID \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID \
--āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ REGION
āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāϕ⧇ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĻ⧇āϝāĻŧ āϝāĻžāϤ⧇ āĻāϟāĻŋ App Hosting āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦāĻž āϰāĻžāύ āϟāĻžāχāĻŽā§‡ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚: āĻ—ā§‹āĻĒāύ: āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧁āύ KEY \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID
āĻāĻ•āϟāĻŋ āĻ—ā§‹āĻĒāύ āϤāĻĨā§āϝ āĻāĻŦāĻ‚ āϤāĻžāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻž āĻĒāĻžāϝāĻŧāĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻ…ā§āϝāĻžāĻĒāĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚: āĻ—ā§‹āĻĒāύ: āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ \
KEY[@version] \
--āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ PROJECT_ID
āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž āĻāĻŦāĻ‚ āĻāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻ—ā§‹āĻĒāύ āĻŽāĻžāύ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇āĨ¤ āϏāĻ°ā§āĻŦāĻļ⧇āώ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĨ¤

Authentication (āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž) āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ: āϰāĻĒā§āϤāĻžāύāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ JSON āĻŦāĻž CSV āĻĢāĻžāχāϞ⧇ āϰāĻĒā§āϤāĻžāύāĻŋ āĻ•āϰ⧇āĨ¤ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ, auth:import āĻāĻŦāĻ‚ auth:export āĻĒ⧃āĻˇā§āĻ āĻžāϟāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤
āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ: āφāĻŽāĻĻāĻžāύāĻŋ āĻāĻ•āϟāĻŋ JSON āĻŦāĻž CSV āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟāϗ⧁āϞāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āφāĻŽāĻĻāĻžāύāĻŋ āĻ•āϰ⧇āĨ¤ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ, auth:import āĻāĻŦāĻ‚ auth:export āĻĒ⧃āĻˇā§āĻ āĻžāϟāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤

Cloud Firestore āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ

āφāĻĒāύāĻžāϰ Cloud Firestore āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤

āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āĻĄāĻžāϟāĻžāĻŦ⧇āϏ: DATABASE_ID āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āφāĻĒāύāĻžāϰ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āύ⧇āϟāĻŋāĻ­ āĻŽā§‹āĻĄā§‡ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāϤāĻžāĻ•āĻžāϗ⧁āϞāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇:

  • --location <region name> āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āφāĻĒāύāĻŋ āωāĻĒāϞāĻŦā§āϧ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ firebase firestore:locations āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĨ¤
  • --delete-protection <deleteProtectionState> āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ āĻŦāĻž āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰāϤ⧇āĨ¤ āĻŦ⧈āϧ āĻŽāĻžāύāϗ⧁āϞāĻŋ ENABLED āĻŦāĻž DISABLED āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ DISABLED āĨ¤
  • --point-in-time-recovery <PITRState> āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ-āχāύ-āϟāĻžāχāĻŽ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āϏāĻ•ā§āώāĻŽ āĻ•āĻŋāύāĻž āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύāĨ¤ āĻŦ⧈āϧ āĻŽāĻžāύāϗ⧁āϞāĻŋ ENABLED āĻ…āĻĨāĻŦāĻž DISABLED āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ DISABLED āĨ¤ āϐāĻšā§āĻ›āĻŋāĻ•āĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ:āĻĄāĻžāϟāĻžāĻŦ⧇āϏ:āϤāĻžāϞāĻŋāĻ•āĻž

āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤

āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āĻĄāĻžāϟāĻžāĻŦ⧇āϏ: DATABASE_ID āĻĒāĻžāύ

āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒāĻžāύāĨ¤

āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āĻĄāĻžāϟāĻžāĻŦ⧇āϏ: āφāĻĒāĻĄā§‡āϟ DATABASE_ID

āφāĻĒāύāĻžāϰ Firebase āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύāĨ¤

āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ āĻāĻ•āϟāĻŋ āĻĒāϤāĻžāĻ•āĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāϤāĻžāĻ•āĻžāϗ⧁āϞāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇:

  • --delete-protection <deleteProtectionState> āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ āĻŦāĻž āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰāϤ⧇āĨ¤ āĻŦ⧈āϧ āĻŽāĻžāύāϗ⧁āϞāĻŋ ENABLED āĻŦāĻž DISABLED āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ DISABLED āĨ¤
  • --point-in-time-recovery <PITRState> āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ-āχāύ-āϟāĻžāχāĻŽ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āϏāĻ•ā§āώāĻŽ āĻ•āĻŋāύāĻž āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧁āύāĨ¤ āĻŦ⧈āϧ āĻŽāĻžāύāϗ⧁āϞāĻŋ ENABLED āĻ…āĻĨāĻŦāĻž DISABLED āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ DISABLED āĨ¤ āϐāĻšā§āĻ›āĻŋāĻ•āĨ¤
āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āĻĄāĻžāϟāĻžāĻŦ⧇āϏ: DATABASE_ID āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧁āύ

āφāĻĒāύāĻžāϰ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻŽā§āϛ⧁āύāĨ¤

āĻĢāĻžāϝāĻŧāĻžāϰāĻ¸ā§āĻŸā§‹āϰ: āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϏ

āφāĻĒāύāĻžāϰ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦ⧇āϏ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧂āĻšā§€ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāϤāĻžāĻ•āĻžāϟāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇:

  • --database DATABASE_ID to specify the name of the database for which to list indexes. If not provided, indexes are listed for the default database.
firestore:delete

Deletes documents in the active project's database. Using the CLI, you can recursively delete all the documents in a collection.

Note that deleting Cloud Firestore data with the CLI incurs read and delete costs. For more information, see Understand Cloud Firestore billing .

The command takes the following flag:

  • --database DATABASE_ID to specify the name of the database from which documents are deleted. If not specified, documents are deleted from the default database. Optional.

Cloud Functions for Firebase commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
functions:config:clone Clones another project's environment into the active Firebase project.
functions:config:get Retrieves existing configuration values of the active project's Cloud Functions .
functions:config:set Stores runtime configuration values of the active project's Cloud Functions .
functions:config:unset Removes values from the active project's runtime configuration.
functions:log Reads logs from deployed Cloud Functions .

For more information, refer to the environment configuration documentation .

Crashlytics commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
crashlytics:mappingfile:generateid \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML
Generates a unique mapping file ID in the specified Android resource (XML) file.
crashlytics:mappingfile:upload \
--app= FIREBASE_APP_ID \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Uploads a Proguard-compatible mapping (TXT) file for this app, and associates it with the mapping file ID declared in the specified Android resource (XML) file.
crashlytics:symbols:upload \
--app= FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Generates a Crashlytics -compatible symbol file for native library crashes on Android and uploads it to Firebase servers.

Data Connect commands

These commands and their use cases are covered in more detail in the Data Connect CLI reference guide .

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
dataconnect:services:list Lists all deployed Data Connect services in your Firebase project.
dataconnect:sql:diff \
SERVICE_ID
For the specified service, displays the differences between a local Data Connect schema and your Cloud SQL database schema.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migrates your Cloud SQL database's schema to match your local Data Connect schema.
dataconnect:sql:grant\
--role= ROLE \
--email= EMAIL \
SERVICE_ID
Grants the SQL role to the specified user or service account email.
For the --role flag, the SQL role to grant is one of: owner , writer , or reader .
For the --email flag, provide the email address of the user or service account to grant the role to.
dataconnect:sdk:generate Generates typed SDKs for your Data Connect connectors.

Extensions commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ Displays information on how to use Firebase Extensions commands.
Lists the extension instances installed in the active project.
ext:configure \
EXTENSION_INSTANCE_ID
Reconfigures the parameter values of an extension instance in your extension manifest .
ext:info \
PUBLISHER_ID/EXTENSION_ID
Prints detailed information about an extension.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Adds a new instance of an extension into your extension manifest .
ext:sdk:install Installs SDKs for defining extensions in functions.
ext:list Lists all the extension instances installed in a Firebase project.
Prints the instance ID for each extension.
ext:uninstall \
EXTENSION_INSTANCE_ID
Removes an extension instance from your extension manifest .
ext:update \
EXTENSION_INSTANCE_ID
Updates an extension instance to the latest version in your extension manifest .
ext:export Exports all installed extension instances from your project to your extension manifest .

Extensions publisher commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
ext:dev:init Initializes a skeleton codebase for a new extension in the current directory.
ext:dev:list \
PUBLISHER_ID
Prints a list of all extensions uploaded by a publisher.
ext:dev:register Registers a Firebase project as an extensions publisher project .
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Deprecates extension versions that match the version predicate.
A version predicate can be a single version (such as 1.0.0 ), or a range of versions (such as >1.0.0 ).
If no version predicate is provided, deprecates all versions of that extension.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Undeprecates extension versions that match the version predicate.
A version predicate can be a single version (such as 1.0.0 ), or a range of versions (such as >1.0.0 ).
If no version predicate is provided, undeprecates all versions of that extension.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Uploads a new version of an extension.
ext:dev:usage \
PUBLISHER_ID
Displays install counts and usage metrics for extensions uploaded by a publisher.

Hosting commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
hosting:disable

Stops serving Firebase Hosting traffic for the active Firebase project.

Your project's Hosting URL will display a "Site Not Found" message after running this command.

Management of Hosting sites
firebase hosting:sites:create \
SITE_ID

Creates a new Hosting site in the active Firebase project using the specified SITE_ID

(Optional) Specify an existing Firebase Web App to associate with the new site by passing the following flag: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Deletes the specified Hosting site

The CLI displays a confirmation prompt before deleting the site.

(Optional) Skip the confirmation prompt by passing the following flags: -f or --force

firebase hosting:sites:get \
SITE_ID

Retrieves information about the specified Hosting site

firebase hosting:sites:list

Lists all Hosting sites for the active Firebase project

Management of preview channels
firebase hosting:channel:create \
CHANNEL_ID

Creates a new preview channel in the default Hosting site using the specified CHANNEL_ID

This command doesn't deploy to the channel.

firebase hosting:channel:delete \
CHANNEL_ID

Deletes the specified preview channel

You cannot delete a site's live channel.

firebase hosting:channel:deploy \
CHANNEL_ID

Deploys your Hosting content and config to the specified preview channel

If the preview channel doesn't yet exist, this command creates the channel in the default Hosting site before deploying to the channel.

firebase hosting:channel:list Lists all channels (including the "live" channel) in the default Hosting site
firebase hosting:channel:open \
CHANNEL_ID
Opens a browser to the specified channel's URL or returns the URL if opening in a browser isn't possible
Version cloning
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

Clones the most recently deployed version on the specified "source" channel to the specified "target" channel

This command also deploys to the specified "target" channel. If the "target" channel doesn't yet exist, this command creates a new preview channel in the "target" Hosting site before deploying to the channel.

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

Clones the specified version to the specified "target" channel

This command also deploys to the specified "target" channel. If the "target" channel doesn't yet exist, this command creates a new preview channel in the "target" Hosting site before deploying to the channel.

You can find the VERSION_ID in the Hosting dashboard of the Firebase console.

Realtime Database commands

Note that you can create your initial, default Realtime Database instance in the Firebase console or by using the general firebase init workflow or the specific firebase init database flow.

Once instances are created, you can manage them as discussed in Manage multiple Realtime Database instances .

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
database:get Fetches data from the active project's database and displays it as JSON. Supports querying on indexed data.
database:instances:create Creates a database instance with a specified instance name. Accepts the --location option for creating a database in a specified region. For region names to use with this option, see select locations for your project . If no database instance exists for the current project, you are prompted to run the firebase init flow to create an instance.
database:instances:list List all database instances for this project. Accepts the --location option for listing databases in a specified region. For region names to use with this option see select locations for your project .
database:profile Builds a profile of operations on the active project's database. For more details, refer to Realtime Database operation types .
database:push Pushes new data to a list at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.
database:remove Deletes all data at a specified location in the active project's database.
database:set Replaces all data at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.
database:update Performs a partial update at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.

Remote Config commands

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦāĻŋāĻŦāϰāĻŖ
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Lists the most recent ten versions of the template. Specify 0 to return all existing versions, or optionally pass the --limit option to limit the number of versions being returned.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Gets the template by version (defaults to the latest version) and outputs the parameter groups, parameters, and condition names and version into a table. Optionally, you can write the output to a specified file with -o, FILENAME .
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Rolls back Remote Config template to a specified previous version number or defaults to the immediate previous version (current version -1). Unless --force is passed, prompts Y/N before proceeding to rollback.
remoteconfig:experiments:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Lists all Remote Config experiments for a project, with optional filtering, number of experiments to return per page (defaults to 10), and page token as the starting offset for the list.
remoteconfig:experiments:get \
EXPERIMENT_ID
Gets the details of the specified Remote Config experiment.
remoteconfig:experiments:delete \
EXPERIMENT_ID
Deletes the specified Remote Config experiment.
remoteconfig:rollouts:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Lists all Remote Config rollouts for a project, with optional filtering, number of rollouts to return per page (defaults to 10), and page token as the starting offset for the list.
remoteconfig:rollouts:get \
ROLLOUT_ID
Gets the details of the specified Remote Config rollout.
remoteconfig:rollouts:delete \
ROLLOUT_ID
Deletes the specified Remote Config rollout.