Next.js项目调用Supabase函数遇API key缺失,需暴露函数至API
解决Supabase函数API暴露及API Key报错问题
一、找到函数API暴露的设置位置
- 登录Supabase项目控制台,左侧菜单栏点击SQL编辑器。
- 切换到顶部的函数标签,找到你编写的PL/pgSQL函数。
- 点击函数右侧的编辑按钮进入编辑界面。
- 在安全性区域,勾选对于公共API可执行选项,保存更改即可。
二、解决API Key报错
即使开启了函数的API访问权限,调用时必须携带Supabase公钥:
- 可以在请求头中添加:
apikey: 你的Supabase公钥(公钥可在控制台项目设置→API页面找到) - 也可以在请求URL后拼接参数:
?apikey=你的Supabase公钥
补充:检查函数定义完整性
你的函数缺少参数声明和基础属性定义,完整的函数创建语句应该类似这样(根据实际参数调整):
CREATE OR REPLACE FUNCTION create_guesser_session(responder_id uuid, question_id uuid) RETURNS void AS $$ declare partner uuid; begin select partner_id into partner from profiles where id = responder_id; if partner is not null then insert into knob_game_sessions (user_id, question_id, role) values (partner, question_id, 'guesser') on conflict do nothing; end if; end; $$ LANGUAGE plpgsql SECURITY DEFINER;
如果之前没补全这些内容,先重新创建函数,再去设置API暴露权限。
内容的提问来源于stack exchange,提问作者Duck
相关产品推荐
相关产品推荐

