标签: supabase

Supabase 第三方 oAuth 提供商返回 null?

我正在尝试实现 Facebook、Google 和 Twitter 身份验证。到目前为止,我已经在各自的开发者平台中设置了应用程序,将这些密钥/秘密添加到我的 Supabase 控制台,并创建了此 graphql 解析器:

/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import camelcaseKeys from 'camelcase-keys';
import { supabase } from 'lib/supabaseClient';
import { LoginInput, Provider } from 'generated/types';
import { Provider as SupabaseProvider } from '@supabase/supabase-js';
import Context from '../../context';
import { User } from '@supabase/supabase-js';

export default async function login(
  _: any,
  { input }: { input: LoginInput },
  { res, req }: Context
): Promise<any> {
  const { provider } = input;

  // base level error …
Run Code Online (Sandbox Code Playgroud)

supabase

5
推荐指数
1
解决办法
2021
查看次数

有没有办法使用 Javascript 在 Supabase 上的多列上执行全文搜索?

我尝试过使用许多符号来分隔列;||、|、&&、&(带空格和不带空格)。

例如

.textSearch("username, title, description", "...");
.textSearch("username|title|description", "...");
Run Code Online (Sandbox Code Playgroud)

但没有任何效果:(

javascript postgresql typescript supabase supabase-database

5
推荐指数
1
解决办法
3573
查看次数

如何将文件从 python Flask Web 应用程序上传到 Supabase Storage

我希望能够将文件从 Flask 上传到 Supabase Storage,但它只有 javascript api链接的文档 docs

另外,我找不到任何示例或任何开源项目来做到这一点。这是我的上传功能:

def upload_file(self):
    if 'file' not in request.files:
        flash('No file part')
        return redirect('/')
    file = request.files['file']
    if file.filename == '':
        flash('No selected file')
        return redirect('/')
    filename = secure_filename(file.filename)
    # upload to supabase storage
    return file.path
Run Code Online (Sandbox Code Playgroud)

python flask supabase supabase-database

5
推荐指数
1
解决办法
972
查看次数

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

有没有办法让用户只有拥有确切的文档 ID 才能读取文档?

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

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

supabase.from('设置').select('*').eq('id', guid)

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

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

postgresql row-level-security supabase supabase-database

5
推荐指数
1
解决办法
823
查看次数

如何使用 Node.js 从 Supabase Storage 保存文件(将 blob 转换为文件)

我正在 NodeJS 中使用 Supabase Storage 下载媒体文件(主要是图像)from.download()

如何将作为文件返回的 Blob 保存在本地硬盘上?

buffer blob node.js supabase

5
推荐指数
1
解决办法
3649
查看次数

如何更新 Supabase 表中的整行?(收到 400 错误)

我正在尝试制作一个输入表单,用户可以在其中同时更改一行中的多个值,然后使用该update()方法将其提交到数据库。这些值作为 defaultValues 从 Supabase 表读取到多个输入字段中,用户可以编辑这些值,然后提交表单以更新表的 Supabase 实例中的值。

输入表格看起来像这样

从用户接收到的输入值存储在具有以下形状的对象中:

inputFields = {
    "name": "Piramal Glassed", // NEW
    "email": "piramal@glass.com", // NEW
    "contact": "98203" // NEW
    "pin": 400066, 
    "city": "Mumbai", 
    "state": "Maharashtra", 
    "country": "India", 
}

Run Code Online (Sandbox Code Playgroud)

标记为 的值// NEW是用户已更改的值,需要在 Supabase 表的后续行中更新。

我不断收到 400 错误。RLS 目前已禁用。这是我用来将数据发送回 supabase 表的函数。

    const { data, error } = await supabase
      .from("company")
      .update([inputFields.values])
      .match([originalFields.values]); // Contains Original Values Of Row That Need To Be Replaced (same shape as inputFields.values)
  };

Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

supabase supabase-database

5
推荐指数
1
解决办法
3782
查看次数

如何使用supabase更改Google OAuth的重定向URL?

我正在尝试使用 Google OAuth 进行身份验证,通过supabase设置一个网站。

通过遵循本教程并查阅文档,设置起来相当简单、方便,并且工作得非常好。

但不幸的是,Google 登录页面显示“登录以继续abcdefghijklmnopqrstuvwxyz.supabase.co ”,对于不知道什么是 supabase 的用户来说,这看起来有点粗略,而且随机字符使其看起来更糟糕。并且没有明显迹象表明这实际上是用户来自并打算登录的网站。

在此输入图像描述

SUPABASE 存储库上已经存在问题,因此似乎正在解决(允许在托管 SUPABASE 控制台中配置 OAuth2 重定向域 #142使用 Google 登录显示“继续访问 Supabase.co”#1798)。

但是,我想知道是否有另一种方法可以使用 Google OAuth 与 supabase 集成,直到有合适的解决方案为止?

更新

supabase github 页面上还有两个关于此问题的问题:

javascript authentication google-authentication oauth-2.0 supabase

5
推荐指数
1
解决办法
2807
查看次数

处理登录错误消息时出错:http://localhost:3000/auth/login net::ERR_ABORTED 405(方法不允许&gt;)

我有这个/app/auth/login/route.ts

import { createRouteHandlerClient } from '@supabase/auth-helpers-nextjs'
import { cookies } from 'next/headers'
import { NextResponse } from 'next/server'

export async function POST(request: Request) {
  const requestUrl = new URL(request.url)
  const formData = await request.formData()
  const email = String(formData.get('email'))
  const password = String(formData.get('password'))
  const cookieStore = cookies()
  const supabase = createRouteHandlerClient({ cookies: () => cookieStore })

  await supabase.auth.signInWithPassword({
    email,
    password,
  })

  return NextResponse.redirect(requestUrl.origin, {
    status: 301,
  })
}
Run Code Online (Sandbox Code Playgroud)

以及/app/login/page.tsx上的页面

import Link from "next/link";

export default function LoginPage() { …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs next.js supabase

5
推荐指数
1
解决办法
395
查看次数

Android Kotlin 项目中 Dagger Hilt 和 KSP 的问题:无法解析符号“Inject”

我\xe2\x80\x99m 使用 Kotlin 处理 Android 项目,并使用 Dagger Hilt 进行依赖注入。最近,我\xe2\x80\x99ve尝试从kapt迁移到KSP(Kotlin符号处理)来生成代码,因为kapt现在处于\xe2\x80\x9c维护模式\xe2\x80\x9d。但是,我\xe2\x80\x99ve遇到了一个问题:KSP未检测到Dagger Hilt注释,例如@Inject,@Binds和@Module,并且我\xe2\x80\x99m得到了\xe2\x80\ x9c无法解析符号\xe2\x80\x9d错误。

\n

我正在使用 \xe2\x80\x9c Framework Quickstarts: Use Supabase with Android Kotlin \xe2\x80\x9d 文档测试与 Supabase 的连接,您可以在其中找到代码。我的 build.gradle.kts(模块):

\n
plugins {\n    id("com.android.application")\n    id("org.jetbrains.kotlin.android") version "1.9.20"\n    id ("com.google.relay") version "0.3.10"\n    kotlin("plugin.serialization") version "1.9.0"\n    id ("com.google.devtools.ksp") version "1.9.20-1.0.14"\n}\n\nandroid {\n    namespace = "xxxxxxxxxxx"\n    compileSdk = 34\n\n    defaultConfig {\n        applicationId = "xxxxxxxxxxxx"\n        minSdk = 24\n        targetSdk = 33\n        versionCode = 1\n        versionName = "1.0"\n\n        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"\n    }\n\n    buildTypes {\n        release {\n            isMinifyEnabled = false\n            proguardFiles(\n …
Run Code Online (Sandbox Code Playgroud)

android kotlin google-developer-tools dagger-hilt supabase

5
推荐指数
1
解决办法
4592
查看次数

当 Postgres 数据中的某些条件满足时,运行缓慢的后台进程?

我正在使用 Postgres(通过 Supabase)和 Node(通过 Vercel 上的 NextJS)。

我有一个表report,其中包含枚举列region,并且generated_text是由人工智能生成的内容。

create type region as enum (
  'America',
  'Europe',
  'Asia',
  'Africa'
);

create table report (
  id serial primary key,
  region region,
  generated_text: text
);
Run Code Online (Sandbox Code Playgroud)

用户选择他们的区域,然后购买报告。购买记录在连接表中report_user

create table report_user(
  id serial primary key,
  report uuid NOT NULL,
  user: uuid NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

当用户进行购买时:

  • 如果该区域的表中存在report用户之前未购买过的行,则该行将返回给他们。
  • 如果该地区没有报告,或者用户已经购买了该地区的所有报告,那么我们需要创建一个新行。这需要向列发送 AI API 请求,generated_text该请求非常慢并且用户体验很差。

我想提高用户的速度,这只能通过report在需要之前创建行来完成。我可以批量创建一些,但我不知道哪些区域会更受欢迎(我简化了我的示例,我的实际应用程序有更多的过滤器,因此有很多潜在的组合)。

report 当用户购买了report特定过滤器的所有行时,有没有办法运行后台任务来创建新任务region

postgresql node.js next.js vercel supabase

5
推荐指数
1
解决办法
186
查看次数