文档 / 搜索 / LingCode Cloud
📘 参考 ● 从这里开始 更新于 2026-06-11

LingCode Cloud

一句话:LingCode Cloud 是为你在 LingCode 里构建的应用准备的托管后端——一个私有 Postgres 数据库,附带认证、文件存储、实时订阅、向量检索、密钥保险库、无服务器函数,以及全栈应用托管。你通过一个零依赖的 SDK(形态类似 Supabase / Firebase)或 REST 访问它。开通一个后端,把 SDK 指向它的 URL + anon key(匿名密钥),然后调用 from('table').select()。无需自建服务器,也不必把密钥放进浏览器。

这里是 LingCode Cloud 的总入口。如果你用过 Firebase 或 Supabase,这套模型会很熟悉:一个通过 HTTPS 访问的数据库,随之而来的认证与存储,以及一个用来运行那些不能放在浏览器里的服务端逻辑的地方。下面的页面按产品逐个展开;先看这里的五分钟上手,再深入你需要的那块。

盒子里都有什么

每个后端开通时就配齐了全套能力——没有需要逐个安装或开启的功能:

记住一个心智模型

客户端 SDK 对话的是一层轻量数据网关,而不是直接连 Postgres。这层网关刻意做成一次只操作一张表的 CRUD——正是这样,anon key 才能安全地放进浏览器打包产物里,由服务端的行级安全负责守门。任何真正关系型的东西(JOIN、视图、索引、约束)都活在下一层,也就是你的迁移(migrations)里。记住这条分界,绝大多数意外就消失了。

五分钟上手

最快的路径是从 LingCode 内部开始——/try 演练场和 Mac IDE 都会替你开通后端,并把客户端预先注入为 window.lingcode。下面是完整的闭环,也包含如何把它接进你自己的应用。

开通一个后端

在 Mac IDE 或 /try 里,让 agent 添加一个后端(或使用连接托管后端)。它会调用 provision_backend,交给你一个数据 URLhttps://lingcode.dev/api/cloud/be/<backend-id>)和一个公开的 anon key。你也可以在 lingcode.dev/backends 管理后端。参见连接托管后端

创建你的 schema

表来自迁移(migrations),不是运行时调用。在控制台的 SQL 标签页里执行 SQL,或者让 agent 调用 apply_migration

create table todos (
  id         bigint generated always as identity primary key,
  user_id    uuid,
  title      text not null,
  done       boolean not null default false,
  created_at timestamptz not null default now()
);

索引、视图、约束和行级安全策略也都在这里定义。参见管理数据库迁移

接入 SDK

加载这个单文件 SDK,用你的两个值创建客户端。在 /try 和 Mac 预览里可以跳过这一步——window.lingcode 已经存在。

<script src="https://lingcode.dev/sdk/lingcode-v1.js"></script>
<script>
  const lingcode = LingCode.createClient(
    'https://lingcode.dev/api/cloud/be/<your-backend-id>',
    '<your-anon-key>'
  );
  await lingcode.ready; // 先把可能存在的登录跳转处理完
</script>

读和写

每个调用都返回 { data, error }。过滤器链在动词之前;update/delete 必须带一个过滤器。

await lingcode.from('todos').insert({ title: 'Buy milk' });

const { data, error } = await lingcode
  .from('todos')
  .eq('done', false)
  .order('created_at', { ascending: false })
  .limit(50)
  .select();

加上认证、存储、实时

同一个客户端,更多能力——每块都有自己的指南:

await lingcode.auth.signUp({ email, password });
await lingcode.storage.from('public').upload('avatars/me.png', file);
const off = lingcode.from('todos').subscribe(({ type, row }) => render(type, row));
anon key 本就是公开的。它就该出现在你的客户端打包产物里——保护数据的是服务端的 RLS,而不是密钥的保密性。你的私有密钥(Stripe secret、第三方 API key)放进后端的密钥保险库,只在函数里读取——函数运行在服务端。

浏览指南

每一页都遵循同样的结构:这个产品是什么、为什么这样设计,一步步的操作指南,以及基于真实 SDK 与接口的可运行示例。

身份

认证

邮箱/密码、魔法链接、OTP、Google/GitHub/Apple OAuth、TOTP MFA,以及访问令牌模型。

数据

数据库

表、链式查询构造器、过滤运算符、迁移、RLS,以及「不支持 JOIN/upsert」这条规则。

文件

存储

公开与私有存储桶、内联上传,以及面向 GB 级文件的预签名直传(presigned PUT)。

计算

函数

七个零部署内置函数,外加 Deno 沙箱里的自定义函数——限制、密钥与调用方式。

部署

应用托管

把静态前端和全栈 Worker/SSR 应用部署到 *.run.lingcode.dev,支持自定义域名。

实时

实时订阅

通过 SSE 订阅 INSERT/UPDATE/DELETE,并按 RLS 过滤,用户只看到属于自己的行。

AI

向量检索

pgvector 相似度、托管向量化,以及面向 RAG 的全文 + 语义混合排序。

安全

密钥保险库

AES-256-GCM 加密的厂商密钥,在控制台里设置,由函数在服务端读取。

触达

推送通知

Web Push(VAPID)——能力检测、为用户订阅,再从你的服务器或函数发送。

度量

数据分析

第一方事件、屏幕、性能 trace 与错误上报——关联到用户 id,存进你自己的后端。

配置

远程配置

功能开关、可调参数与 A/B 实验变体——无需重新部署即可改变行为。

安全

安全与 RLS

为什么 anon key 是安全的,以及可直接复制的行级安全策略,让用户只看到自己的行。

生产

最佳实践

数据建模、分页、索引、安全检查清单与配额——上线前要做对的那些事。

参考

排错

每一个错误码——它的含义与一行修复办法——按产品分组。

参考

API 参考

完整的 SDK 接口,以及每一个 /api/cloud/be/<id>/… REST 端点及其结构。

更喜欢边做边学?

教程把具体任务从头走一遍:部署一个应用在自己的项目里使用 SDK加上 Google 登录绑定自定义域名,以及用 advisors 扫描后端