如何检查 Supabase 表中是否存在用于在 flutter 中注册的电子邮件?

tai*_*lor 5 flutter supabase

在这里,我尝试在我的 flutter 项目中从 firebase 迁移到 Supabase。我停留在第一阶段。on按下注册按钮,

final response = await Supabase.instance.client.auth.signUp(email,pass);
Run Code Online (Sandbox Code Playgroud)

这是在表中创建新用户。但是我如何检查已存在的注册电子邮件?

dsh*_*tjr 5

已编辑

长答案短,您不必找出 Supabase 中是否存在用户。您可以在此处阅读更多相关信息,Supabase 的 CTO 解释了原因,但公开某个用户是否存在于公共端点中会产生安全漏洞。

signUp()Supabase 中的方法在客户端的行为始终相同,无论是否已经有用户。在后端,将向用户发送一封电子邮件,如果用户之前不存在,则其中将包含一个确认链接;如果用户已经存在,则将包含一个魔术链接。如果用户已经创建了帐户并单击魔术链接,则用户将像使用魔术链接登录一样登录,因此无需再担心任何事情。

原来的

我相信这在 Firebase 和 Supabase 中是相同的(如果我错了,请纠正我),但如果具有相同电子邮件的用户已经存在,您会收到错误消息。

你可以得到这样的错误:

final response = await Supabase.instance.client.auth.signUp(email,pass);
final error = response.error;
if(error != null) {
  // Here you can handle case where there was an error signing up.
}

Run Code Online (Sandbox Code Playgroud)

  • 这是错误的,除非关闭“启用电子邮件确认”,supabase 将返回一个假用户对象,并且错误对象将为 null。请参阅 https://supabase.com/docs/reference/javascript/auth-signup 的注释部分 (4认同)