You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Supabase与Next.js中无法获取全列数据的问题求助

解决Supabase查询全列返回空数组的问题
  • 先打印错误信息排查原因
    在查询代码里加上错误输出,确认具体问题:

    const supabase = createClient(process.env.NEXT_PUBLIC_SUPABASE_URL, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY);
    
    let { data: shows, error } = await supabase.from('shows').select('*');
    if (error) console.error('查询错误:', error); // 查看具体错误提示
    console.log(shows);
    

    如果错误提示是权限相关,那大概率是Row Level Security(RLS)策略限制了列的访问。

  • 检查并调整Supabase的RLS策略

    1. 登录Supabase控制台,找到你的项目,进入数据库 -> 表,选择shows表
    2. 切换到策略标签,查看针对SELECT操作的现有策略
    3. 如果策略中指定了只能读取特定列(比如只允许city列),修改策略为允许读取所有列;如果没有合适的策略,创建新策略:
      CREATE POLICY "允许匿名用户读取shows表所有列" ON shows
      FOR SELECT USING (true);
      
    4. 确保shows表的RLS处于开启状态(默认是开启的,若之前关闭过需重新开启)
  • 验证匿名用户的表权限
    在Supabase控制台的SQL编辑器中执行以下语句,确保匿名角色(anon)拥有shows表的全列SELECT权限:

    GRANT SELECT ON shows TO anon;
    

完成以上操作后,重新执行select('*')查询,即可获取到表的全列数据。

内容的提问来源于stack exchange,提问作者wpix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:39:55