
Fix FlutterFlow Forms Hidden by the Keyboard
The submit button sits behind the keyboard and the sheet refuses to scroll. One symptom, four separate responsibilities, and the fix is rarely the one you reach for first.
Notes from building real products — SaaS architecture, AI workflows, the trade-offs nobody warns you about.
169 articles

The submit button sits behind the keyboard and the sheet refuses to scroll. One symptom, four separate responsibilities, and the fix is rarely the one you reach for first.

Before blaming the renderer, find out which half of the frame is slow and how often your row widget builds. One scroll in profile mode, counted in DevTools, exported twice.

A transcript can be accurate while the extracted date is wrong. Hold the extraction as a suggestion on the note, and let one confirm action be the only code that writes a task.

A Firestore listener is billed per document event, and attaching it pays for the whole result set. Take an inventory of subscriptions before you reach for a cache.

A restore asks the signed-in store account one question, and one project setting decides whether access may move. Map the five results before changing code.

A guest's records survive signup only if the credential is attached to the session they already have. The one call that does it, the existing-account fork, and how to verify ownership.

A failed submission does not clear a FlutterFlow text field; a reset in the wrong branch does. Separate field, page and request state, guard the submit, and keep values through a retry.

A 300 KB photo can cost 46 MiB once it is decoded, and Flutter decodes at native size unless you say otherwise. Derive the decode target from the tile, quantise it, and measure the change on a real device.

A saved price moves and nothing tells the user, or three pings tell them at once. Schedule the observation, write it down before deciding, and give each alert an ID you can recompute.

Duplicate rows come from a cursor that names a position instead of a document. The total ordering that fixes it, the listener scope that keeps it cheap, and five checks that prove it.

Signing out of Firebase does not change who RevenueCat answers for. The identity calls, the one that throws when nobody is logged in, and where entitlements get enforced.

Firebase Authentication created the account; the Firestore write that creates the profile did not land. An idempotent bootstrap, a field allowlist, and the recovery path.
Showing 12 of 168 articles