0

我在 Node JS 中间件中使用 Supabase。我正在开发一个邀请功能,它通过 REST 端点接收现有 supabase 用户的电子邮件地址。现在它应该查询用户表以获取用户 ID。但这似乎不起作用:

(我使用 Supabase JavaScript 库和绕过行级安全性的管理密钥):

const { createClient,   } = require('@supabase/supabase-js')
const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY)
supabase
  .from('users')
  .select('id')
  .eq('email', 'doe@example.com')
  .then(response => {
    console.log(response)
  })

我收到此错误:

'关系“public.users”不存在'

我还尝试了一个查询

supabase
  .from('users')
  .select('id')
  .eq('email', 'doe@example.com')
  .then(response => {
    console.log(response)
  })

但这也失败了。似乎无法查询用户表。

我究竟做错了什么?如何通过给定的电子邮件查询用户 ID?

任何人都可以将我推向正确的方向吗?

谢谢,

尼可

4

1 回答 1

2

自己找到了解决方案:

您不能直接查询 auth.users 表。相反,您必须使用您以后要使用的数据创建一个副本(例如 public.users 或 public.profile 等)。

您可以使用用户触发器在创建用户后立即自动创建 public.users 表的条目。

我在博客文章中写了一些代码示例和详细信息:Supabase:如何查询用户表?

于 2021-07-11T09:06:31.567 回答