reactjs 具有职员身份验证的Supabase实时客户端

rjee0c15  于 2023-05-06  发布在  React
关注(0)|答案(1)|浏览(194)

supabase.realtime.setAuth(token)会变魔术吗?还是我错过了什么?
完整代码在这里

import { useAuth } from '@clerk/clerk-react'

...

useEffect(() => {
    const fetchTokenAndSubscribe = async () => {
      const token = await getToken()
      supabase.realtime.setAuth(token)
      const channel = supabase.channel('public:messages')

      channel
        .on(
          'postgres_changes',
          {
            event: 'INSERT',
            schema: 'public',
            table: 'messages',
          },
          handleMessageInsertOrUpdate,
        )
        .subscribe()

      return () => {
        channel.unsubscribe()
      }
    }

    fetchTokenAndSubscribe()
  }, [])

我在消息表上启用了真实的,但没有从消息中获得任何信息。我猜测这可能是关于RLS的问题,因此我禁用了它,但仍然没有运气。我的实施或配置中是否遗漏了什么?

ddrv8njm

ddrv8njm1#

要开始使用realtime,您需要在每个表的基础上启用realtime。您可以通过 Jmeter 板转到Database > Replication并单击supabase_realtime上行右侧的按钮来完成此操作,或者通过SQL启用它。

-- add a table to the publication
alter
  publication supabase_realtime add table messages;

https://supabase.com/docs/guides/realtime/extensions/postgres-changes#replication-setup

相关问题