从 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表中)。
设置迁移工具 #
-
克隆
firebase-to-supabase仓库1git clone https://github.com/supabase-community/firebase-to-supabase.git -
在
/auth目录中,创建一个名为supabase-service.json的文件,内容如下1{2"host": "database.server.com",3"password": "secretpassword",4"user": "postgres",5"database": "postgres",6"port": 54327} -
在您的项目仪表板上,点击 连接
-
在会话池下,单击连接字符串下的“查看参数”。将
Host和User字段替换为显示的值。 -
在
supabase-service.json文件中的password条目中,输入您在创建 Supabase 项目时使用的密码。
生成 Firebase 私钥 #
- 登录到您的 Firebase 控制台 并打开您的项目。
- 点击侧边栏中的 项目概览 旁边的齿轮图标,然后选择 项目设置。
- 点击 服务帐号,然后选择 Firebase Admin SDK。
- 点击 生成新的私钥。
- 将下载的文件重命名为
firebase-service.json。
保存 Firebase 密码哈希参数 #
- 登录到您的 Firebase 控制台 并打开您的项目。
- 在侧边栏中选择 Authentication(构建部分)。
- 在顶部菜单中选择 Users。
- 在用户列表的右上角,打开菜单(三个点),然后单击 Password hash parameters(密码哈希参数)。
- 复制并保存
base64_signer_key、base64_salt_separator、rounds和mem_cost的参数。
1hash_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#
联系我们,如果您需要更多帮助来迁移您的项目。