Rowy 开源低代码后端平台实战指南:用 Airtable 式表格界面管理 Firestore 与构建云函数工作流

发布时间:2026/10/15 15:28:15
Rowy 开源低代码后端平台实战指南:用 Airtable 式表格界面管理 Firestore 与构建云函数工作流 低代码【免费下载链接】rowyLow-code backend platform. Manage database on spreadsheet-like UI and build cloud functions workflows in JS/TS, all in your browser.项目地址https://gitcode.com/gh_mirrors/ro/rowy点击查看免费下载Rowy 是一个开源的低代码后端平台让你在浏览器中直接以电子表格Airtable-like交互界面管理 Firebase/Firestore 数据库并能在字段级数据变化上构建云函数工作流无需离开浏览器即可完成从建表、增删改查、导入导出到自动化编排的全过程。本文以仓库根目录 README.md 为核心骨架结合 src 目录下的源码实现系统讲解 Rowy 的功能体系、字段类型、自动化能力与安装部署方式帮助开发者快速评估并上手这一面向 Firebase 与 Google Cloud 的低代码方案。项目定位Low-code for Firebase and Google CloudRowy 的核心定位是“面向 Firebase 与 Google Cloud 的低代码后端平台”它连接你的数据库并允许你用低代码方式创建 Cloud Functions全程停留在浏览器内。项目描述强调 Manage database on spreadsheet-like UI and build cloud functions workflows in JS/TS, all in your browser这与 README 开篇的标语一致——Airtable-like UI for managing database、Build any automation, with or without code。在仓库中这一定位体现在两个层面前端单页应用package.json 显示项目是一个基于 React 18 Vite 的 TypeScript 应用private: true依赖了tanstack/react-table表格渲染、firebaseFirestore/Auth/Storage/Functions 接入、jotai原子化状态管理、monaco-editor内置代码编辑器等核心库数据与运行时解耦应用只负责呈现与交互实际数据读写由 src/sources/TableSourceFirestore/TableSourceFirestore.tsx 等“数据源”组件负责它通过 Firestore SDK 读写集合、表结构文档table schema并订阅实时更新。README 特别强调数据归属权你的数据与云函数始终留在你自己的 Firestore/GCP 项目上Rowy 只通过一个运行在你 GCP 项目里的 Cloud Run 实例来管理它们we do not access or store any of your data on Rowy。强大的电子表格界面面向 Firestore 的 CMS 与 CRUDREADME 将表格界面能力总结为六大项仓库源码均能找到对应实现README 宣称能力仓库实现佐证Firestore CMS 与 CRUD 操作行编辑、删除、批量写入等由 src/sources/TableSourceFirestore/useBulkWriteDb.ts、deleteRowAtom 等驱动工具栏提供 AddRow 与批量删除批量导入 / 导出数据csv、json、tsvImportCsvWizard、ImportExistingWizard、ExportModal 三个向导组件按行值排序与过滤Filters.tsx 与 Sort.tsx锁定、冻结、调整宽度、隐藏与重命名列ColumnMenu.tsx 的菜单项Lock、Freeze、Unfreeze、Rename、Hide同一集合的多种视图每个表可配置独立的 schema、过滤器与视图设置按行值过滤与排序支持表级与个人级双层过滤过滤是表格界面的高频操作。Filters.tsx 实现了非常细化的过滤体系两级过滤器ADMIN 可以设置“表级过滤器”Table filter普通用户可以维护“个人过滤器”Your filter当表级过滤器被标记为filtersOverridable时所有用户都可以覆盖它逻辑组合过滤器支持 AND/OR 连接符joinOperator每个过滤器在应用时会通过updateTableSchema({ filters, filtersOverridable, joinOperator })写回表 schema 文档或通过updateUserSettings({ tables: { [tableId]: { filters, joinOperator } } })写入用户设置文档URL 联动应用内置 useFilterUrl.ts当前生效的过滤器会同步到 URL 查询参数方便分享带过滤条件的表链接。排序则由 SortPopover.tsx 提供支持升序asc/降序切换当前排序字段与方向会显示在工具栏按钮上Sorted: {key}并配合 useSaveTableSorts.tsx 持久化到表 schema。数据导入导出CSV / JSON / TSV 与文件下载导入导出是 README 强调的“开箱即用”能力仓库提供了完整的向导式实现导入 CSVImportCsvWizard 分三步Step1 列映射、Step2 新列创建、Step3 预览其中 Step1 会把 CSV 表头与现有列一一对应并对新列调用suggestType见 ImportExistingWizard/utils.ts自动推断字段类型导入 AirtableImportAirtableWizard 支持从 Airtable 导入需要提供 Airtable API Key 与表 URL导出数据ModalContentsExport.tsx 使用json2csv/plainjs将当前查询结果含过滤与排序转成 CSV 并下载ModalContentsDownload.tsx 则针对 Image/File 列把文档中的文件打包成 ZIP 下载支持用其他列的值替换文件名如column/field1_field2.jpeg。列操作锁定、冻结、调整宽度、隐藏与重命名列的锁/冻结/改宽/隐藏/重命名都集中在列头右键菜单 MenuContents.tsx 中每个菜单项以column-menu-item-{key}的 DOM id 标识。列头组件 ColumnHeader.tsx 的注释列出了完整渲染结构拖拽手柄、字段类型图标点击可复制字段 key、字段名、排序按钮与调宽手柄。工具栏 TableToolbar.tsx 还提供 RowHeight行高、HiddenFields隐藏字段等视图级控制对应 README 的“为同一集合提供多种视图”能力。丰富灵活的字段体系30 内置字段类型README 宣称支持 30 种字段类型并将其划分为基础文本、自定义选择器、上传器、富编辑器四类。仓库中 src/constants/fields.ts 的FieldType枚举给出了完整的类型清单可按 README 的分类整理如下分类字段类型枚举值基础文本shortText、longText、richText、email、phone、url选择类singleSelect、multiSelect数值类checkbox、number、percentage、rating、slider、color、geoPoint日期时间date、dateTime、duration文件上传image、file连接类connector、subTable、arraySubTable、reference、connectTable、connectService代码类json、code、markdown、array云函数类action、derivative、aggregate、status客户端函数formula审计类createdBy、updatedBy、createdAt、updatedAt元数据user、id、last每个字段类型的 UI 行为由 src/components/fields/index.tsx 中的FIELDS数组统一注册数组内每个条目都实现 types.ts 定义的IFieldConfig接口包含type、name、group、dataType、initialValue、TableCell单元格渲染、SideDrawerField侧边抽屉表单、settings字段配置面板等成员。getFieldProp、isFieldType、hasDataTypes等工具函数供全站按需检索字段能力。字段数据校验、默认值与必填README 提到的“数据校验validation、默认值default values、必填字段required fields”能力由字段配置面板与默认值输入组件落实新建列时可配置默认值表达式DefaultValueInput.tsx并通过settingsValidator钩子例如 Derivative/index.tsx 引入的settingsValidator在保存前校验配置合法性。特殊字段Action、Derivative、Connector 与 Connect Service除基础字段外README 单独点名了四个“高阶”字段它们正是 Rowy 自动化与跨数据源能力的载体Action 字段表格中的一个可点击按钮触发任意 Cloud Function。Action/index.tsx 的配置标明requireCloudFunction: true、requireConfiguration: true即必须配合 Rowy Run后端运行时使用支持 Undo/Redo。其设置面板预置了 Run/Undo 两套代码模板 templates.ts模板中的Action类型签名展示了运行时注入的上下文参数{ row, ref, db, storage, auth, actionParams, user, logging }并支持通过rowy.secrets.get(service)读取密钥后调用任意 HTTP APIDerivative 字段值由行内其余字段派生而来并用任意其他字段类型展示。Derivative/index.tsx 描述为 Value derived from the rest of the rows values. Displayed using any other field type同样需要 Rowy Run其实际展示类型通过config.renderFieldType指定见 src/components/fields/index.tsx 的getFieldType逻辑Connector 字段连接任意表或 API基于文本查询或行数据拉取结果列表requireCloudFunction: true见 Connector/index.tsxConnect Service 字段从任意 HTTP 端点获取数据列表当前标注为 AlphadataType为{ docPath: string; snapshot: Recordstring, any; }[]即同时保留文档路径与快照见 ConnectService/index.tsx。用云函数与现成扩展实现自动化README 的自动化能力承诺分为两层一是基于字段级数据变化构建云函数工作流可用任意 NPM 模块或 API二是用预置代码块连接常用工具SendGrid、Algolia、Twilio、Bigquery 等。仓库虽为前端仓库但通过多处设计佐证了这一能力链路字段配置中的“云函数依赖”标记IFieldConfig接口中的requireCloudFunction、requireCollectionTable字段见 src/components/fields/types.tsAction、Derivative、Connector 等字段均置为true从源码结构看这意味着这些字段的启用会引导用户先完成 Rowy Run 后端部署扩展与 Webhook 管理界面ExtensionsModal 提供扩展的创建、列表、迁移与运行时选项RuntimeOptionsWebhooksModal 提供 Webhook 的认证Step1Auth、条件Step2Conditions、解析器Step3Parser配置这些表级自动化对象随表 schema 持久化可在表设置导入导出中迁移见 ImportSettings.tsx 中对_schema.extensionObjects与_schema.webhooks的检测云日志查看CloudLogsModal 可查看构建日志与运行时日志并支持按时间范围TimeRangeSelect与严重级别CloudLogSeverityIcon筛选对应云函数调试闭环公式字段客户端函数Formula 字段在浏览器端 worker 中计算见 src/components/fields/Formula/worker.ts属于with or without code中纯客户端的一类。团队协作与权限控制README 的协作能力包括表级与字段级的细粒度权限控制RBAC、内置用户管理、以及面向不同角色的可定制视图。源码证据如下角色体系贯穿全局过滤逻辑中大量出现userRoles.includes(ADMIN)判断见 Filters.tsx只有 ADMIN 能编辑表级过滤器非 ADMIN 在表过滤器不可覆盖时只能只读查看disabled的 FilterInputsCollection内置用户管理仓库提供 InviteUser.tsx、UserItem.tsx、UserSkeleton.tsx 等组件并依托 Firebase Auth 与 useAuthUser.ts 实现登录与会话管理src/config/firebaseui.ts 配置了 Google 等第三方登录字段级锁定列头中的LockOutlined图标与canEditColumns标志见 ColumnHeader.tsx说明字段可被锁定为只读配合角色实现字段级权限。安装与部署快速引导安装与手动安装README 给出了两条安装路径并明确建议普通用户使用快速引导安装。方案一快速引导安装推荐一键部署按钮会把 Rowy 部署到你的 Google Cloud Platform 项目上你的数据与云函数保留在自己的 Firestore/GCP 中由一个只运行于你 GCP 项目内的 Cloud Run 实例管理Rowy 不会访问或存储你的数据。该路径面向的是将 Rowy 作为 SaaS 后端使用、无需本地开发环境的用户。方案二手动安装适合开发与贡献README 说明手动安装仅推荐给希望开发与贡献项目的人。结合仓库配置手动跑通前端开发环境的关键信息如下环境要求package.json 声明engines: { node: 16 }包管理器为yarn1.22.19环境变量createDotEnv.js 会生成.env其中包含四个必填变量VITE_APP_FIREBASE_PROJECT_ID 你的 Firebase 项目 ID VITE_APP_FIREBASE_PROJECT_WEB_API_KEY Firebase Web API Key VITE_APP_ALGOLIA_APP_ID Algolia App ID VITE_APP_ALGOLIA_SEARCH_API_KEY Algolia Search API Key启动脚本yarn startVite 开发服务器端口 7699、yarn build先tsc类型检查再 Vite 构建、yarn preview预览构建产物本地模拟器firebase.json配置了 auth9099、firestore9299、storage9199三个模拟器端口运行yarn startWithEmulators会在VITE_APP_FIREBASE_EMULATORStrue下启动前端此时 init.ts 会自动把 Auth/Firestore/Storage 指向本地模拟器地址connectAuthEmulator、connectFirestoreEmulator、connectStorageEmulator仓库根目录 emulators 目录还带有可导入的初始数据auth_export、firestore_export可通过yarn emulators以--import ./emulators/方式恢复现场。从源码结构看前端初始化时通过环境变量动态构建 Firebase 配置authDomain、databaseURL、storageBucket均由项目 ID 推导见 init.ts并把配置放入 jotai 原子firebaseConfigAtom以便运行时切换 Firebase 项目Firestore 启用多标签页持久化缓存persistentLocalCachepersistentMultipleTabManager以提升体验init.ts。数据与表结构存放约定值得注意的实现细节表结构schema并非存在 Rowy 私有服务中而是作为 Firestore 文档存放在你的项目里。TableSourceFirestore.tsx 通过getTableSchemaPath(tableSettings)定位 schema 文档不存在时以{ columns: {} }初始化所有表设置列配置、过滤器、排序、视图都通过setDoc(tableSchemaDocRef, updateToDb, { merge: true })合并写回嵌套列字段则用 Firestore 的deleteField()哨兵值精确删除见 TableSourceFirestore.tsx确保列级配置的增删改都直接落在你自有的数据库里。总结Rowy 用一份 README 勾勒出了完整的低代码后端愿景而仓库源码印证了它的落地方式一个以 Firestore 为数据中枢、以表格为交互范式、以云函数为自动化引擎的浏览器端工作台。对开发者而言评估 Rowy 时可以抓住三条主线——电子表格界面是否满足你团队的 CMS/CRUD 诉求、30 字段与 Action/Derivative/Connector 等特殊字段是否覆盖你的业务建模需要、以及“数据留在自己 GCP 项目”的部署模型是否符合你的合规与运维要求。若需深度定制或贡献代码可参考 CONTRIBUTING.md 与 firebase.json、createDotEnv.js 在本地搭建开发环境借助 emulators 目录提供的模拟器数据快速起步。赞分享低代码【免费下载链接】rowyLow-code backend platform. Manage database on spreadsheet-like UI and build cloud functions workflows in JS/TS, all in your browser.项目地址https://gitcode.com/gh_mirrors/ro/rowy点击查看免费下载相关推荐Qwable-27B如何用这个免费AI模型快速解决你的技术难题终极指南来了Qwable 27B如何用这个免费AI模型快速解决你的技术难题终极指南来了 你是否经常遇到技术问题却不知道如何下手 写代码时卡在某个函数上调试Do如何用Rowy低代码平台快速构建电商后台管理系统完整实战指南如何用Rowy低代码平台快速构建电商后台管理系统完整实战指南 Rowy是一款开源的低代码后端平台它提供类似电子表格的界面来管理数据库并允许在浏览器中用JS低代码QuickRecordermacOS录屏快上手QuickRecordermacOS录屏快上手 录完屏找不到文件存哪系统声音和麦克风音量想分开调却做不到QuickRecorder 是一款基于 Scree桌面应用音视频屏幕录制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询