平台

从 Firebase Auth 迁移到 Supabase

将 Firebase auth 用户迁移到 Supabase Auth。


Supabase 提供了几个 工具来帮助将 auth 用户从 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
    "host": "database.server.com",
    3
    "password": "secretpassword",
    4
    "user": "postgres",
    5
    "database": "postgres",
    6
    "port": 5432
    7
    }
  3. 在您的项目仪表板上,点击 连接

  4. 在会话池下,单击连接字符串下的“查看参数”。将 HostUser 字段替换为显示的值。

  5. supabase-service.json 文件中的 password 条目中,输入您在创建 Supabase 项目时使用的密码。

生成 Firebase 私钥 #

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

保存 Firebase 密码哈希参数 #

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

命令行选项#

将 Firestore 用户转储到 JSON 文件 #

node firestoreusers2json.js [<filename.json>] [<batch_size>]

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

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

node import_users.js <path_to_json_file> [<batch_size>]

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

说明#

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

资源#

迁移到 Supabase#

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