我建议创建一个名为<code>public.users</code>的表,该表“代表”来自<code>auth.users</code>表中的部分数据。你可以通过使用<code>trigger</code>(触发器)轻松实现这一点。
例如,我只想在<code>public.users</code>表中包含<code>email</code>和<code>id</code>字段,因为其他信息无关紧要。
你可以在Supabase仪表板的SQL编辑器中复制并粘贴以下代码(新建查询):
CREATE TABLE PUBLIC.USERS (
id uuid REFERENCES auth.users NOT NULL PRIMARY KEY,
email text
);
CREATE OR REPLACE FUNCTION public.handle_new_user()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO public.users (id, email)
VALUES (NEW.id, NEW.email);
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
CREATE TRIGGER on_new_user
AFTER INSERT ON auth.users
FOR EACH ROW
EXECUTE PROCEDURE public.handle_new_user ();
接下来,尝试注册一个新用户,你会自动看到这个新用户同时出现在<code>auth.users</code>和<code>public.users</code>两个表中。这样一来,你就可以使用JavaScript库对<code>public.users</code>表进行查询了。