平台

从 Firebase Storage 迁移到 Supabase

将 Firebase Storage 文件迁移到 Supabase Storage。


Supabase 提供了几种工具,用于将存储文件从 Firebase Storage 转换为 Supabase Storage。转换过程分为两步

  1. 文件从 Firebase 存储桶下载到本地文件系统。
  2. 文件从本地文件系统上传到 Supabase 存储桶。

设置迁移工具 #

  1. 克隆 firebase-to-supabase 仓库

    1
    git clone https://github.com/supabase-community/firebase-to-supabase.git
  2. /storage 目录中,将 supabase-keys-sample.js 重命名为 supabase-keys.js

  3. 前往仪表盘中你的 Supabase 项目的API 设置

  4. 复制 项目 URL 并更新 supabase-keys.js 中的 SUPABASE_URL 值。

  5. 项目 API 密钥 下,复制 service_role 密钥并更新 supabase-keys.js 中的 SUPABASE_KEY 值。

生成 Firebase 私钥 #

  1. 登录到您的 Firebase 控制台 并打开您的项目。
  2. 点击侧边栏中的 项目概览 旁边的齿轮图标,然后选择 项目设置
  3. 点击 服务帐号,然后选择 Firebase Admin SDK
  4. 点击 生成新的私钥
  5. 将下载的文件重命名为 firebase-service.json

命令行选项#

将 Firestore Storage 存储桶下载到本地文件系统文件夹 #

node download.js <prefix> [<folder>] [<batchSize>] [<limit>] [<token>]

  • <prefix>: 要下载的文件的前缀。要处理根桶,请使用空前缀:""。
  • <folder>:(可选)下载文件的子文件夹名称。所选文件夹将作为当前文件夹的子文件夹创建(例如,./downloads/)。默认值为 downloads
  • <batchSize>:(可选)默认值为 100。
  • <limit>:(可选)处理完这么多文件后停止。如果无限制,请使用 0
  • <token>:(可选)从此 pageToken 开始处理。

要使用多个命令行执行分批处理,您必须在后续调用中将相同参数与新的 <token> 一起使用。使用上次调用中显示的令牌在给定点继续该过程。

上传文件到 Supabase Storage 存储桶 #

node upload.js <prefix> <folder> <bucket>

  • <prefix>: 要下载的文件的前缀。要处理所有文件,请使用空前缀:""。
  • <folder>: 要上传的文件的子文件夹名称。所选文件夹将作为当前文件夹的子文件夹读取(例如,./downloads/)。默认值为 downloads
  • <bucket>: 要上传到的存储桶名称。

资源#

迁移到 Supabase#

联系我们,如果您需要更多帮助来迁移您的项目。