My firebase app has a list of registered users. These were created with Email & Password Authentication.
I want to transfer the firebase data and the list of users to another firebase app.
Transferring the firebase data is straightforward, but how can I transfer the registered users and keep their uid's?
Is this possible and if so, what is the best way to do it?
You should use the Firebase admin tools.
You may install the admin tools using this command:
npm install -g firebase-tools
Export command, that generates the AllUsers.json file:
firebase auth:export AllUsers.json --project projectId
On the other account use the following command to import the generated file.
firebase auth:import AllUsers.json --project projectId
The answer above doesn't work by it self as all the passwords from the previous project will have different password hashes. So you need to specify the new hash when you import the new users.
Click on this menu item and all of the settings you need for doing the firebase auth:import command will show up. Here's what I see:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <long string of random characters>,
base64_salt_separator: <short string of random characters>,
rounds: 8,
mem_cost: 14,
}
I can then do the command successfully
firebase auth:import ./users.json --hash-algo=scrypt --rounds=8 --mem-cost=14 --hash-key=<long string of random characters> --salt-separator=<short string of random characters>
How to set hash-key option for auth:import after default auth:export in firebase?
Just got this from Firebase Support:
Just recently Firebase, has rolled-out the new API for downloading
your Firebase Auth users. To migrate your users to/from other Firebase
projects, you may use this new CLI auth:export tool which is available
at Github. For more information you may check on our Firebase docs.
Additionally, we made a guide for importing/exporting
users on your projects.