Skip to content

Let a cloud build be configured at first launch instead of at build time #52

Description

@jsconu

Not a first issue, but a genuinely useful one.

A cloud build reads its Firebase settings from cloud/src/main/assets/google-services.json, bundled at build time (FirebaseBootstrap). So using the cloud flavor means compiling the apps yourself — about 45 minutes with Android Studio, per docs/SELF_HOSTING.md. That's a real barrier for a parent who wants remote limits but has never opened an IDE.

Note this is no longer blocking distribution. Local builds are published and need no configuration at all; this is about making the cloud half reachable without a compiler.

What it would take

  • Build FirebaseOptions from values a person supplies at first launch rather than from a bundled asset. FirebaseBootstrap already constructs options by hand, so the mechanism exists — what's missing is where the values come from.
  • A first-launch screen in the parent app to supply a project. Importing the google-services.json file is friendlier than typing four fields, and it's what the Firebase console hands you.
  • A way for the kid app to get the same config. It needs it before it can read a pairing code, so it can't arrive over the wire afterwards. The neat answer is a QR code on the parent's pairing screen carrying both the config and the pairing code — the local build already does exactly this shape of thing for its nearby link (NearbyLink.toPayload), so there's a working pattern to copy.
  • A clear failure when someone supplies a project whose Firestore rules or auth providers aren't set up, rather than a crash or a silent hang.

Worth agreeing first

Whether a family should be able to change projects later, and what happens to a paired phone if they do. Please comment before building.

This wouldn't remove the need for docs/SELF_HOSTING.md — someone still has to create the Firebase project and publish the rules. It removes the need for every family to compile the app, which is the part that loses people.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions