平台

从 Firebase Auth 迁移至 Supabase

将 Firebase 认证用户迁移至 Supabase Auth


Supabase 提供了多种工具来帮助将认证用户从 Firebase 项目迁移到 Supabase 项目。迁移过程包含两个部分:

  • firestoreusers2json (TypeScript, JavaScript) 将现有 Firebase 项目中的用户导出到本地系统的 .json 文件
  • import_users (TypeScript, JavaScript) 将保存的 .json 文件中的用户导入到您的 Supabase 项目(将这些用户插入到 Postgres 数据库实例的 auth.users 表中)

设置迁移工具

  1. 克隆 firebase-to-supabase 仓库:

    1
    git clone https://github.com/supabase-community/firebase-to-supabase.git
  2. /auth 目录中,创建一个名为 supabase-service.json 的文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    { "host": "database.server.com", "password": "secretpassword", "user": "postgres", "database": "postgres", "port": 5432}
  3. 在项目仪表板中,点击 Connect

  4. 在 Session pooler 下,点击连接字符串下方的 View parameters。用显示的值替换 HostUser 字段

  5. supabase-service.json 文件的 password 字段中输入创建 Supabase 项目时使用的密码

生成Firebase私钥

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

保存Firebase密码哈希参数

  1. 登录您的Firebase控制台并打开项目
  2. 在侧边栏中选择认证(构建部分)
  3. 在顶部菜单中选择用户
  4. 在用户列表右上角打开菜单(三个点),点击密码哈希参数
  5. 复制并保存以下参数:base64_signer_keybase64_salt_separatorroundsmem_cost
1
2
3
4
5
6
7
hash_config { algorithm: SCRYPT, base64_signer_key: XXXX/XXX+XXXXXXXXXXXXXXXXX+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==, base64_salt_separator: Aa==, rounds: 8, mem_cost: 14,}

命令行选项

将Firestore用户导出为JSON文件

node firestoreusers2json.js [<文件名.json>] [<批量大小>]

  • 文件名.json: (可选)输出文件名(默认为./users.json)
  • batchSize: (可选)每批获取的用户数量(默认为100)

将JSON用户文件导入Supabase Auth(Postgres: auth.users

node import_users.js <JSON文件路径> [<批量大小>]

  • path_to_json_file: 用户JSON输入文件的完整本地路径和文件名
  • batch_size: (可选)每批处理的用户数量(默认为100)

注意事项

对于更高级的迁移场景,包括使用中间件服务器组件来验证用户现有的Firebase密码并在用户首次登录时更新其在Supabase项目中的密码,请参考firebase-to-supabase仓库

相关资源

企业支持

如需获取更多项目迁移帮助,请联系我们