从 Firebase Auth 迁移至 Supabase
将 Firebase 认证用户迁移至 Supabase Auth
Supabase 提供了多种工具来帮助将认证用户从 Firebase 项目迁移到 Supabase 项目。迁移过程包含两个部分:
firestoreusers2json
(TypeScript, JavaScript) 将现有 Firebase 项目中的用户导出到本地系统的.json
文件import_users
(TypeScript, JavaScript) 将保存的.json
文件中的用户导入到您的 Supabase 项目(将这些用户插入到Postgres
数据库实例的auth.users
表中)
设置迁移工具
-
克隆
firebase-to-supabase
仓库:1git clone https://github.com/supabase-community/firebase-to-supabase.git -
在
/auth
目录中,创建一个名为supabase-service.json
的文件,内容如下:1234567{ "host": "database.server.com", "password": "secretpassword", "user": "postgres", "database": "postgres", "port": 5432} -
在项目仪表板中,点击 Connect
-
在 Session pooler 下,点击连接字符串下方的 View parameters。用显示的值替换
Host
和User
字段 -
在
supabase-service.json
文件的password
字段中输入创建 Supabase 项目时使用的密码
生成Firebase私钥
- 登录您的Firebase控制台并打开项目
- 在侧边栏中点击项目概览旁边的齿轮图标,选择项目设置
- 点击服务账户,选择Firebase Admin SDK
- 点击生成新的私钥
- 将下载的文件重命名为
firebase-service.json
保存Firebase密码哈希参数
- 登录您的Firebase控制台并打开项目
- 在侧边栏中选择认证(构建部分)
- 在顶部菜单中选择用户
- 在用户列表右上角打开菜单(三个点),点击密码哈希参数
- 复制并保存以下参数:
base64_signer_key
、base64_salt_separator
、rounds
和mem_cost
1234567hash_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
仓库。
相关资源
企业支持
如需获取更多项目迁移帮助,请联系我们。