问题标签 [supabase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
105 浏览

supabase - Supabase middleware for business logic

New to the supabase universe. Simple questions

Is there a way to setup middleware in supabase?. Can Supabase fulfill this?

  • Add business logic middleware when creating an entity
  • Add special validations (ie: validate a product has stock before purchase)
  • Restrict information depending on user roles (ie: admins can read additional entity attributes, but not common users).

Thanks

0 投票
2 回答
139 浏览

postgresql - PostgREST - 在插入时添加经过身份验证的用户 ID

我需要在其中一列中自动添加插入行的作者。我正在使用 postgREST(使用 Supabase 云服务),我不希望用户添加他们想要的任何人作为作者。有没有办法自动添加发布数据的用户的用户 ID?谢谢!

0 投票
1 回答
191 浏览

javascript - Nuxt.js3 插件的上下文变得未定义

我正在使用 Nuxt.js3 和 supabase 开发应用程序。

plugins/supabase.server.js 中的 Nuxt.js(我还没有弄清楚服务器或客户端是否更适合这个。)我想使用 index.vue 中的“supabase = createClient(~~)”。

但是,我得到未定义,要么是因为导入不起作用,要么是因为我以错误的方式调用它。

如果我使用 mustache 语法并将其称为“{{ $supabase }}”,则会出现该函数。

(我英语不好,所以我用翻译的句子。)

插件/supbase.server.js

页面/index.vue

0 投票
2 回答
72 浏览

postgresql - 基于关系表数据的行级安全性

我正在进入Supabase并练习我正在制作一个 suuuper 简化的网站构建器
但是,我在行级安全策略方面遇到了麻烦。

我有三张桌子:

  • 用户→ 包含用户的名字、姓氏等信息。
  • 网站→ 所有网站
  • user_website → 包含哪个网站属于哪个人的信息(因为一个网站可以由多个用户拥有/编辑)
用户
用户身份
...
网站
website_id
...
用户网站
用户身份
website_id
用户角色
...

我没有找到任何有用的资源,因为老实说,我仍然缺乏知道如何正确搜索所需内容的知识。

我只找到了像这样的简单表达式(uid() = user_id),但由于“权限”存储在另一个表中,我不知道如何访问它。

我使用了如下查询,但没有按预期工作:

非常感谢您的帮助 - 谢谢!

0 投票
2 回答
84 浏览

javascript - 在特定日期执行功能

我已经看到了一些解决方案,但没有一个感觉完全正确。

我正在使用 React 和 Node.js 构建一个完整的堆栈应用程序,并使用 Supabase 作为数据库。这是出于爱好目的,我可以随意切换以适应这一点,所以我愿意接受任何建议。

用户将提供一个日期,应用程序需要在该日期执行一个功能。我遇到的大部分内容都建议使用setInterval. 我可能是错的,但不断运行 setIntervals 似乎并不是最有效或可扩展的做事方式。

有什么建议可以更好地管理这个吗?在服务器、数据库(Postgres),甚至是客户端?任何指向可能有帮助的文档的指针都表示赞赏。谢谢你的时间。

0 投票
1 回答
146 浏览

sql - 如何插入选择查询的结果(如果不返回任何行,则默认为)作为 Postgres 函数的一部分?

对于我的 Nextjs 网站,我将后端配置为在向 auth.users 表中插入一行时自动将用户信息添加到 public.profiles 表中(通过 Supbase 的身份验证自动完成)。

我有一个 public.college_emails 表,其中包含 1700 多所大学的名称以及与它们关联的电子邮件标签。当用户使用他们的学校电子邮件创建帐户时,我希望它返回与他们的电子邮件标签关联的大学名称,并将其输入到他们的“学校”字段中。否则,如果他们使用不在我列表中的电子邮件,它将插入“其他”。

我能够让 Supbase 编译我的 SQL 而没有语法错误,但是在尝试添加新用户时,它失败并出现错误Database error when creating user。(我发现这是当与用户创建相关的触发器或函数出现问题时。当我删除执行前面提到的功能的代码时,它工作正常(但只是没有正确选择大学名称。

这是我的 PostgreSQL 代码不起作用。它没有报告语法错误,但在尝试插入用户时失败:

我的大学表格式如下:

email (text): 'example@mycollege.edu'; college (text): 'My College'; tag (text): 'mycollege.edu'

这就是我现在的功能(恢复为工作版本以继续测试)。这缺少添加正确大学名称的代码。表和触发器保持不变:

我的预期结果:

使用电子邮件“myname@uci.edi”的用户注册并添加到 auth.users。public.profiles 中添加了一个新行,其中包含电子邮件:“myname@uci.edu”、用户名:“myname”和school: "University of California Irvine"

0 投票
1 回答
176 浏览

javascript - 渲染多个图像 Supabase

我正在尝试从我的超级数据库和存储桶下载图像。每个帖子都会上传多张照片并获得自己的文件夹 ID,其中存储了图像。然后,我将图像的路径名上传到数据库,这样我就可以为下一页的帖子获取相应的照片。我的问题是我无法将正确的照片渲染到正确的帖子

它是如何工作的

  • 1.useEffect从Db下载所有图片

  • 2.我需要将那些 img Id 与 DB 表中的 IDS 匹配以呈现照片§

下载 fnc

零件

JSX

试图弄清楚这是否是正确的方法可能会得到我不确定的密钥?

网址 ARR 数据

0 投票
0 回答
276 浏览

sql - 使用 Postgres 函数保存新用户错误的数据库错误?

对于我的网站(由 Supabase 提供后端支持),我有内置的 auth.users 表和一个包含电子邮件、用户名和学校文本字段的 public.profiles 表。我创建了一个触发器和函数,当在 中插入新行时,将使用电子邮件作为电子邮件、full_name 作为电子邮件的用户名组件( for )auth.users在 public.profiles 中插入一行,并执行对大学名称的查询从 public.college_emails 表中确定学校(如果某人使用域“@uci.edu”的电子邮件注册,它将在配置文件字段中插入“加州大学欧文分校”。如果它无法将域与学校匹配,它将插入“其他”。myNamemyName@email.comschool

例子:

假设在我的网站上注册了电子邮件“rickAstley@ucla.edu”的用户。将此行添加到auth.users中后,触发器应执行一个函数,该函数将public.profiles使用以下字段添加新行email::rickAstley@ucla.edu,full_name:rickAstley,:school加州大学洛杉矶分校。

这是该函数的当前 Postgres 代码,由 insert on 上的触发器执行auth.users

当我使用虚构的 uuid 和学校电子邮件直接执行插入auth.users操作时,例如:

触发器和功能按预期完美执行。但是,如果我尝试将用户添加到auth.users标准方式,通过以访客身份访问网站并注册,我会收到错误消息Database Error Saving New User。这是图像,尽管我怀疑它会有所帮助:

错误

我不明白为什么这段代码在直接插入时可以正常工作,但在使用 Supabase 的 Auth 组件插入时却不行。这是创建注册功能的代码:

还有一点需要注意的是,当我使用的函数在函数中执行查询时,例如在第一个句点之前插入电子邮件域的第一部分而不是在public.college_emails. domain "@uci.edu" 将在字段中插入 "uci"school而不是查询全名)。

这就是工作功能:

我渴望在这个问题上的任何线索,非常感谢提前。

0 投票
0 回答
26 浏览

postgresql - 仅当用户具有确切的文档 ID postgresql 行级安全性/supabase 时才允许读取

有没有办法让用户只有在他们具有确切的文档 ID 时才能阅读文档?

我想避免创建用户,因此唯一的安全措施是保存在浏览器内存中的随机 guid - 设置将保存在 id=guid 的“设置”表中。

因此,当页面打开时,它将获取

supbase.from('settings').select('*').eq('id', guid)

如何保护该设置(不创建(虚拟)用户)

像这样在 Firebase 中: Firebase firestore 只允许在用户具有准确的文档 ID 时读取,但对于 postgresql/supabase

0 投票
0 回答
221 浏览

flutter - 在 Flutter Supabase 中查询对象的 JSON 数组

我正在使用 Flutter 和 Supabase,我正在尝试获取表中与数组字段部分匹配的所有元素。

我有一个带有 jsonb 数组列的表,其中包含PollItem在 json 映射中转换为的对象列表()

player 是另一个Player以相同方式在地图中转换的对象 ( )。我将对象插入到数据库列中

它有效。在 supbase 列字段中,结果类似于

现在我想从同一个表中选择部分匹配items数组项的所有行。从PollItem我想找出数据库中是否有某行在项目列中至少有一个匹配项的列表中。我尝试了不同的方法,但总是遇到一些错误。

我究竟做错了什么?先感谢您。