使用 Convex
编辑页面
使用 Convex 为你的应用添加数据库。
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
Convex 是一个后端平台,用于构建具有实时数据库、服务器函数、文件存储、搜索、调度以及类型安全客户端库的响应式应用,而无需集群管理、SQL 或 ORM。
EAS CLI 集成可以为你创建并连接 Convex 项目。它替代了手动设置步骤,例如安装包、创建 Convex 团队和项目、复制部署 URL,以及配置 EAS 环境变量。
3 requirements
3 requirements
1.
注册一个 Expo 账户。
2.
npm install -g eas-cli 全局安装 EAS CLI。3.
创建一个 Expo 项目,并使用 eas init 将其链接到 EAS。
使用 EAS 连接 Convex
1
运行 EAS CLI 集成命令
在你的 Expo 项目目录中运行:
- eas integrations:convex:connect在需要时,该命令会提示你输入 Convex 部署区域、项目名称和团队名称。只有在需要创建新的 Convex 团队连接时,它才会询问团队名称。
你也可以显式传入这些值:
- eas integrations:convex:connect --region aws-us-east-1 --team-name "Your-team-name" --project-name "your-app"该集成命令会:
- 使用
npx expo install convex安装convex包 - 为你的 EAS 账户创建一个 Convex 团队连接,或复用已有连接
- 为当前 Expo 应用创建一个 Convex 项目和部署
- 将
CONVEX_DEPLOY_KEY和EXPO_PUBLIC_CONVEX_URL写入 .env.local - 为生产、预览和开发环境创建或更新
EXPO_PUBLIC_CONVEX_URLEAS 项目环境变量 - 向你已验证的邮箱发送邀请,以便你可以认领 Convex 团队并打开 Convex 仪表盘
2
3
添加 Convex provider
使用 EAS 集成写入 .env.local 的部署 URL 创建一个 Convex 客户端,然后用 ConvexProvider 包裹你的应用。
对于 Expo Router 项目,请更新 src/app/_layout.tsx:
import { ConvexProvider, ConvexReactClient } from 'convex/react'; import { Stack } from 'expo-router'; const convex = new ConvexReactClient(process.env.EXPO_PUBLIC_CONVEX_URL!, { unsavedChangesWarning: false, }); export default function RootLayout() { return ( <ConvexProvider client={convex}> <Stack /> </ConvexProvider> ); }
4
从你的应用中查询 Convex
在 convex 目录中添加一个查询函数:
import { query } from './_generated/server'; export const get = query({ args: {}, handler: async ctx => { return await ctx.db.query('tasks').collect(); }, });
然后在你的应用中使用 useQuery 调用它:
import { api } from '@/convex/_generated/api'; import { useQuery } from 'convex/react'; import { Text, View } from 'react-native'; export default function Index() { const tasks = useQuery(api.tasks.get); return ( <View> {tasks?.map(task => ( <Text key={task._id}>{task.text}</Text> ))} </View> ); }
要了解 Convex 的更多工作原理,包括数据库文档、函数和客户端订阅,请参阅 Convex 概览:
了解数据库文档、函数和实时客户端更新背后的核心 Convex 概念。
管理集成
之后可使用这些命令来查看或管理 Convex 集成:
- eas integrations:convex:project- eas integrations:convex:dashboard- eas integrations:convex:team- eas integrations:convex:team:invite如果你使用 eas integrations:convex:project:delete 或 eas integrations:convex:team:delete 移除链接,EAS 会删除其集成元数据。这些命令不会销毁 Convex 上的资源。