首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实时查询?

如何实时查询?
EN

Stack Overflow用户
提问于 2022-09-11 13:09:37
回答 2查看 432关注 0票数 1

大多数博客和堆栈建议在下面的数据库聊天。

代码语言:javascript
复制
message_table
-id
-message
-conversationId
-sender
-receiverId

conversation_table
-id
-conversationId

现在message_table看起来像这样。

因此,对于聊天屏幕,我订阅了消息表。

代码语言:javascript
复制
final mySubscription = supabase
  .from('message_table')
  .on(SupabaseEventTypes.all, (payload) {
    // Handle realtime payload
  })
  .subscribe();

如果user1和user2在聊天,他们将从这个表中得到所有的消息。

那么,如何在supabase中使用指定的conversationId对这些数据进行过滤,以停止接收其他用户的其他消息并减少带宽?

这个数据库可行吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-12 06:55:43

您可以在实时侦听器上添加eq过滤器,如下所示:

支持酶-颤振v1.X

代码语言:javascript
复制
final subscription = supabase.channel('unique_channel').on(
    RealtimeListenTypes.postgresChanges,
    ChannelFilter(
      event: '*',
      schema: 'public',
      table: 'message_table',
      filter: 'conversationId=eq.conv12',
    ), (payload, [ref]) {
      // handle realtime here
}).subscribe();

支持酶-颤振v0.X

代码语言:javascript
复制
final subscription = supabase
  .from('message_table:conversationId=eq.conv12')
  .on(SupabaseEventTypes.all, (payload) {
    // Handle realtime payload
  })
  .subscribe();

您可以在官方的Supabase文档这里上阅读更多关于这个特性的信息!

票数 3
EN

Stack Overflow用户

发布于 2022-09-11 18:30:13

查找列满足筛选器的所有行。

代码语言:javascript
复制
var conversationId = yourvalue ;
final mySubscription = supabase
  .from('message_table')
  .select('message, conversationId, sender , receiverId')
  .eq('conversationId', conversationId) // Correct
  .on(SupabaseEventTypes.all, (payload) {
    // Handle realtime payload
  })
  .subscribe();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73679550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档