apps/docs/content/guides/platform/migrating-to-supabase/firebase-storage.mdx
Supabase provides several tools to convert storage files from Firebase Storage to Supabase Storage. Conversion is a two-step process:
Clone the firebase-to-supabase repository:
git clone https://github.com/supabase-community/firebase-to-supabase.git
In the /storage directory, rename supabase-keys-sample.js to supabase-keys.js.
Go to your Supabase project's API settings in the Dashboard.
Copy the Project URL and update the SUPABASE_URL value in supabase-keys.js.
Under Project API keys, copy the service_role key and update the SUPABASE_KEY value in supabase-keys.js.
firebase-service.json.node download.js <prefix> [<folder>] [<batchSize>] [<limit>] [<token>]
<prefix>: The prefix of the files to download. To process the root bucket, use an empty prefix: "".<folder>: (optional) Name of subfolder for downloaded files. The selected folder is created as a subfolder of the current folder (e.g., ./downloads/). The default is downloads.<batchSize>: (optional) The default is 100.<limit>: (optional) Stop after processing this many files. For no limit, use 0.<token>: (optional) Begin processing at this pageToken.To process in batches using multiple command-line executions, you must use the same parameters with a new <token> on subsequent calls. Use the token displayed on the last call to continue the process at a given point.
node upload.js <prefix> <folder> <bucket>
<prefix>: The prefix of the files to download. To process all files, use an empty prefix: "".<folder>: Name of subfolder of files to upload. The selected folder is read as a subfolder of the current folder (e.g., ./downloads/). The default is downloads.<bucket>: Name of the bucket to upload to.If the bucket doesn't exist, it's created as a non-public bucket. You must set permissions on this new bucket in the Supabase Dashboard before users can download any files.
Contact us if you need more help migrating your project.