Next JS中的supabase在数据位于相关表中时返回空数组

xggvc2p6  于 2023-08-04  发布在  其他
关注(0)|答案(4)|浏览(96)

似乎我总是返回一个空数组时,试图拉数据从我的表。这就是我在遵循文档和几个教程之后所做的。

const [tableData, setTableData] = useState([]);

  async function getTableData() {
    let { data, error } = await supabase
      .from('SignalJourneyAudienceConstraints')
      .select('*');

    setTableData(data);
    console.log(tableData);
  }

  useEffect(() => {
    getTableData();
  }, []);

字符串
我在表中有这样的数据。


的数据
我唯一能想到的就是table的名字??
我还尝试了以下方法

let { data: SignalJourneyAudienceConstraints, error } = await supabase
  .from('SignalJourneyAudienceConstraints')
  .select('*')


但是得到了一个错误ReferenceError: data is not defined,在VSC中,我得到了All destructured elements are unused.ts(6198)
我总是看到教程只是使用data虽然。

plicqrtu

plicqrtu1#

我不得不关掉table上的RLS。

1u4esq0p

1u4esq0p2#

您应该禁用RLS(不安全)或为您的表定义策略。(项目中的每个表都有自己的策略,应该单独创建规则)

yhived7q

yhived7q3#

即使关闭了RLS,我也没有收到任何记录。结果发现NextJS正在缓存响应。
硬刷新(使用cmd-shift-r或按住Chrome中的刷新按钮)对我来说很有效。

mfpqipee

mfpqipee4#

打开您的数据库项目 Jmeter 板。然后进入左侧的“身份验证”菜单。然后打开“配置”->“策略”。
x1c 0d1x的数据
然后为您的表创建**“新策略”
true放入
USING expression列。
请看我下面的截图;


它会给予你一个使用RLS访问
Public表的权限。RLS的使用非常重要,因为在生产环境中,它使您的表不能被任何人编辑。并且您可以只为SELECT设置允许操作**(见第二张截图)。
所以,如果anon key是分散的,那也没关系。那就是只能看到内容,不能修改。

相关问题