Can I access related table columns from Supabase relations in FlutterFlow?

Database & APIs

Hi everyone! I’m building a social app with Supabase + FlutterFlow and I’m stuck on how to reliably surface related table fields (not just foreign key IDs) in the UI while preserving realtime streaming for my Feed.

Here is my current schema simplified for the problem and what I need:

public.answers

id uuid PRIMARY KEY

user_id uuid REFERENCES public.users(id)

question_id uuid REFERENCES public.questions(id)

media_id uuid REFERENCES public.media(id)

color_id uuid REFERENCES public.colors(id)

answer_text text

public.questions

id uuid PRIMARY KEY

text text

anonymous boolean

asked_user_id uuid

public.colors

id int4 PRIMARY KEY

name text

hex varchar

public.users

id uuid REFERENCES auth.users(id)

username text

public.media

id uuid PRIMARY KEY

storage_path text

mime text

My goal

When I list public.answers in Feed page, I need to display and bind related fields such as:

  • questions.text (question text shown in the answer card)

  • questions.is_anonymous (to show whether the question was anonymous)

  • questions.asked_user_id (for routing/mentions)

  • colors.hex (for UI color)

  • users.username (answer author)

  • media.storage_path (media preview)

I want these fields to be available in FlutterFlow variables and widget bindings (Text widgets, conditional visibility, etc.). I also want the Feed to update in realtime when public.answers rows are updated

  • I need a realtime feed (new answers, edits should reflect quickly) — ideally with FlutterFlow’s Trigger/Streaming integration if possible.

  • I prefer to avoid tons of client-side additional fetches per item for performance reasons.

  • I can add server-side triggers/RPCs or denormalize if necessary — but want to understand trade-offs (consistency, scaling, RLS implications).

In short

I need to show related table columns (question text, color hex, user info) inside public.answers bindings in FlutterFlow from Supabase AND keep realtime streaming for the Feed. Views let me access joined fields but break streaming. Client-side fetches are too expensive. What is the cleanest, production-ready pattern that other developers use with Supabase + FlutterFlow for this exact problem?

Thanks in advance.

What have you tried so far?
  1. Simple table query in FlutterFlow: When I query public.answers directly, FlutterFlow only returns the FK IDs (e.g. question_id, color_id) — not the joined columns like questions.text or colors.hex.

  2. Created a DB VIEW (e.g. answer_with_related) that LEFT JOINs questions, colors, users, media and selects the related columns (question_text, color_hex, etc.). In FlutterFlow the view shows up and I can bind the joined fields. ✅

    • Problem: FlutterFlow / Supabase realtime streaming requires a real table with a primary key. Views don't have a real primary key (or at least streaming on views is not supported), so I lose realtime streaming when I use a view as my main data source.

  3. I investigated client-side approach: fetch answers then for each row fetch related tables (questions, colors) separately. This works but is too many requests and slow for a feed with many rows.

Did you check FlutterFlow's Documentation for this topic?
Yes
2