Bird
Raised Fist0
Supabasecloud~5 mins

Presence for online status in Supabase - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is 'Presence' in the context of online status?
Presence is a way to track if a user is currently online or offline in real time.
Click to reveal answer
beginner
How does Supabase track online status using Presence?
Supabase uses real-time channels to listen for user connections and disconnections, updating their online status accordingly.
Click to reveal answer
intermediate
Why is it important to handle disconnections properly in Presence?
Handling disconnections ensures the system knows when a user goes offline, keeping the online status accurate.
Click to reveal answer
intermediate
What role do 'heartbeat' messages play in Presence systems?
Heartbeat messages regularly confirm a user is still connected, helping detect unexpected disconnections.
Click to reveal answer
beginner
Name a common real-life example of Presence for online status.
Chat apps like WhatsApp show green dots or 'online' labels to indicate if a friend is currently active.
Click to reveal answer
What does Presence track in Supabase?
AUser online or offline status
BUser password strength
CDatabase schema changes
DFile upload progress
Which Supabase feature helps detect when a user disconnects?
AAuthentication tokens
BStorage buckets
CDatabase triggers
DRealtime channels
Why are heartbeat messages important in Presence?
ATo encrypt user data
BTo confirm the user is still connected
CTo speed up database queries
DTo backup user files
What happens if disconnections are not handled properly in Presence?
AUser password resets automatically
BDatabase schema breaks
CUser might appear online when offline
DFiles get corrupted
Which real-life app uses Presence to show online status?
AWhatsApp
BExcel
CPhotoshop
DSpotify
Explain how Supabase Presence helps track if a user is online or offline.
Think about how the system knows when someone joins or leaves.
You got /4 concepts.
    Describe why accurate handling of user disconnections is important in Presence systems.
    Consider what happens if the system thinks a user is online but they are not.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using presence in Supabase realtime channels?
      easy
      A. To show which users are currently online in real-time
      B. To store user passwords securely
      C. To send emails to users
      D. To create database backups automatically

      Solution

      1. Step 1: Understand presence feature

        Presence in Supabase is designed to track and show who is online at any moment.
      2. Step 2: Identify main use case

        It helps applications display real-time online user lists, not for security or backups.
      3. Final Answer:

        To show which users are currently online in real-time -> Option A
      4. Quick Check:

        Presence = Online user tracking [OK]
      Hint: Presence means tracking who is online live [OK]
      Common Mistakes:
      • Confusing presence with security features
      • Thinking presence handles backups
      • Assuming presence sends emails
      2. Which of the following is the correct way to listen for presence updates in Supabase realtime channels?
      easy
      A. channel.on('presence', callback)
      B. channel.on('update', callback)
      C. channel.on('message', callback)
      D. channel.on('sync', callback)

      Solution

      1. Step 1: Recall Supabase presence event names

        Supabase presence uses the 'sync' event to notify when presence data updates.
      2. Step 2: Match event to correct listener

        The 'sync' event triggers the callback with the updated online user list.
      3. Final Answer:

        channel.on('sync', callback) -> Option D
      4. Quick Check:

        Presence updates use 'sync' event [OK]
      Hint: Presence updates come from 'sync' event, not 'presence' [OK]
      Common Mistakes:
      • Using 'presence' event which does not exist
      • Confusing 'message' event with presence updates
      • Using 'update' event which is unrelated
      3. Given this code snippet, what will be logged when a user joins the presence channel?
      const channel = supabase.channel('online-users').on('presence', () => {
        console.log(channel.presenceState())
      }).subscribe()
      medium
      A. An object showing all currently online users
      B. An error because presenceState() is not a function
      C. An empty array always
      D. A string message 'User joined'

      Solution

      1. Step 1: Understand presenceState() method

        presenceState() returns the current presence data, showing online users grouped by user ID.
      2. Step 2: Analyze code behavior on 'presence' event

        When a user joins, 'presence' triggers and logs the updated presence state object.
      3. Final Answer:

        An object showing all currently online users -> Option A
      4. Quick Check:

        presenceState() = online users object [OK]
      Hint: presenceState() returns online users object on presence event [OK]
      Common Mistakes:
      • Thinking presenceState() is undefined
      • Expecting a string message instead of object
      • Assuming it returns an empty array always
      4. You wrote this code to track online users but no updates appear:
      const channel = supabase.channel('online-users')
      channel.on('presence', () => {
        console.log('Users online:', channel.presenceState())
      })
      What is the likely problem?
      medium
      A. The event name 'presence' is incorrect
      B. You forgot to call subscribe() on the channel
      C. presenceState() does not exist on channel
      D. You need to use 'message' event instead

      Solution

      1. Step 1: Check channel subscription

        Without calling subscribe(), the channel does not connect and receive events.
      2. Step 2: Confirm event and method correctness

        'presence' event and presenceState() are correct, so missing subscribe() is the issue.
      3. Final Answer:

        You forgot to call subscribe() on the channel -> Option B
      4. Quick Check:

        Must call subscribe() to receive events [OK]
      Hint: Always call subscribe() after setting up channel listeners [OK]
      Common Mistakes:
      • Skipping subscribe() call
      • Using wrong event name
      • Expecting presenceState() without subscription
      5. You want to show a live list of online users with their usernames using Supabase presence. Which approach correctly combines presence tracking and user data fetching?
      hard
      A. Subscribe to 'update' events and update UI without querying user data
      B. Query user profiles once on page load, then listen to 'message' events for updates
      C. Listen to 'presence' event, get user IDs from presenceState(), then query user profiles from database
      D. Use presenceState() to get usernames directly without extra queries

      Solution

      1. Step 1: Understand presenceState() data

        presenceState() gives user IDs and metadata, but not full usernames.
      2. Step 2: Combine presence with database queries

        After getting IDs from presenceState(), query the database to fetch usernames for display.
      3. Final Answer:

        Listen to 'presence' event, get user IDs from presenceState(), then query user profiles from database -> Option C
      4. Quick Check:

        Presence + DB query = live usernames [OK]
      Hint: Use presenceState() IDs then query DB for usernames [OK]
      Common Mistakes:
      • Expecting presenceState() to contain usernames
      • Not querying user profiles after presence update
      • Listening to wrong events like 'message' or 'update'
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard