Google Play & Firebase
Mobile app builds target Android and the web. Two outside accounts matter here: Google Play, if you want to publish to the Play Store, and Firebase, if your app needs a backend for accounts, cloud sync, or push notifications. You connect both in LoopCodeLab Settings.
Prices change. The figures below are current as of July 2026. Confirm the latest numbers on the provider’s own site before you pay.
Google Play
Section titled “Google Play”You need Google Play credentials only when you plan to submit to the Play Store. To install and test an app on a device, you just request an APK from a finished build, and that needs nothing here.
1. A Google Play developer account
Section titled “1. A Google Play developer account”Publishing to the Play Store requires a Google Play developer account. There is a one-time registration fee of US$25, paid once when you register. There is no yearly renewal, and one account covers as many apps as you want to publish. The fee is non-refundable, so pay it only when you are ready to publish. See Get started with Play Console (fee confirmed as of July 2026).
Register at play.google.com/console. A personal account is quick to set up; an organization account asks for extra business verification.
2. A service account JSON key
Section titled “2. A service account JSON key”This is the credential LoopCodeLab uses to push releases for you. Create it once:
- In the Play Console, open Setup and then API access.
- Link a Google Cloud project (create one if you do not have it yet).
- Create a service account. This opens the Google Cloud console, where you create the account and then come back to the Play Console.
- Back in the Play Console under API access, grant that service account release permissions so it is allowed to manage and publish releases.
- In the Google Cloud console, open the service account, add a key, and download it as JSON.
Open LoopCodeLab Settings and paste that JSON into the Google Play credential. It is stored encrypted for your account.
3. Two steps you do by hand, once
Section titled “3. Two steps you do by hand, once”A couple of things Google requires a human to do the first time. LoopCodeLab cannot do them for you, and until they are done the release automation has nothing to publish to:
- Create the app and upload the first release by hand. In the Play Console, create the app entry and upload the first
.aabyourself. Google requires a human for this initial upload. - Invite the service account. Give the service account you created access to that app so it is allowed to publish on your behalf.
After those two are done once, the GitHub Action that LoopCodeLab generates (built on r0adkll/upload-google-play, with your package name in PLAY_PACKAGE_NAME) can push later releases for you. You still control when a production release goes live.
Firebase
Section titled “Firebase”Connect Firebase when your app needs a backend: user accounts, cloud data that syncs across devices, or push notifications. For a local-only app that keeps everything on the device, you can skip this and the build will use on-device storage.
There are two ways to connect, and the CLI sign-in is the smoother one.
Option A (preferred): sign in with the Firebase CLI
Section titled “Option A (preferred): sign in with the Firebase CLI”In LoopCodeLab Settings, start the Firebase sign-in. It is a terminal sign-in, the same kind the coding agents use: you run a Firebase login, approve it in your browser, and the connection is saved for your account.
Once you are signed in, the build wires Firebase in for you. It runs flutterfire configure to link your app to a Firebase project and set up the config it needs. You can reuse an existing Firebase project rather than making a new one each time, which is worth doing, because Firebase limits how many new projects you can create.
Option B: paste a google-services.json
Section titled “Option B: paste a google-services.json”If you would rather not sign in, you can paste a google-services.json file from your Firebase project into Settings instead. The Android build needs this file; LoopCodeLab places it where the build expects and keeps it out of your repository.
What gets committed, and what does not
Section titled “What gets committed, and what does not”firebase_options.dartis public configuration and is safe to commit. The build commits it.google-services.jsonshould never be committed. LoopCodeLab handles that for you, so it stays out of your published repository.
Firebase cost
Section titled “Firebase cost”Firebase has two plans (current as of July 2026, per Firebase pricing):
- Spark (free). The default plan. No payment method needed, and it can never run up a bill: when a product hits its free daily or monthly limit, it stops until the limit resets. This covers accounts, a database, and push for a small app.
- Blaze (pay-as-you-go). You keep the same free allowances, then pay per unit only for usage above them. New Blaze accounts are also eligible for a $300 credit. Move to Blaze when you outgrow the free limits or need a feature Spark does not include.
Start on Spark. You only need Blaze once your app’s usage climbs past the free tier.
Sources
Section titled “Sources”- Google Play registration fee: Get started with Play Console, confirmed July 2026.
- Firebase plans: Firebase pricing, confirmed July 2026.