---
layout: integration
title: Migrate from Firebase
description: Move users, Firestore data, and Storage files from Firebase to Appwrite
date: 2026-11-06
featured: false
isPartner: true
isNew: true
cover: /images/integrations/migrations-firebase/cover.avif
category: migrations
product:
    vendor: Firebase
    description: "Firebase is Google's app development platform, with Authentication, Cloud Firestore, Cloud Storage, and Cloud Functions."
platform:
    - 'Self-hosted'
    - 'Cloud'
---

[Firebase](https://firebase.google.com) is Google's app development platform. Apps built on it typically keep their users in Firebase Authentication, their data in Cloud Firestore, and their files in Cloud Storage for Firebase.

# How does the integration work?

Appwrite Migrations reads your Firebase project through a Google Cloud service account and copies its resources into an Appwrite project. You choose which resources to move in the migration wizard, and Appwrite runs the migration in the background.

| Resource | Migration |
| --- | --- |
| Users | Automatic |
| Databases | Automatic |
| Rows | Partial: top-level Firestore documents only |
| Files | Automatic |
| Functions | Manual |

Some things don't carry over. Appwrite reads Firestore but not the Realtime Database, and nested documents are not migrated automatically. Users who signed in with an OAuth provider need to sign in again after the migration, because their sessions belong to that provider. Cloud Functions must be rewritten as [Appwrite Functions](/docs/products/functions) because of syntax and runtime differences.

**Usage charges**

On Appwrite Cloud, resource usage during a migration doesn't count toward your usage charges. Firebase may still charge for data transfer.

# How to implement

To migrate a Firebase project to Appwrite, there are several steps you must complete:

## Step 1: Create a service account

Open your project in the Firebase console, click the gear icon to open **Project settings**, and go to **Service accounts**. Click **Manage service account permissions** to open the Google Cloud console, then click **Create service account** and give it a name.

Grant the service account these roles:

| Role | Access |
| --- | --- |
| Firebase Viewer | Read access to your entire Firebase project, including its database and Storage. |
| Identity Toolkit Viewer | Read access to your users, including their password hash configuration. |

## Step 2: Create a JSON key

Find the new service account, open its menu, and click **Manage keys**. Click **Add key** > **Create new key**, choose **JSON**, and click **Create**. Your browser downloads the key file. Keep it private, because it grants read access to your Firebase project.

## Step 3: Start the migration in Appwrite

For this step, you must [create an account on Appwrite Cloud](/sign-up) or [self-host Appwrite](/docs/advanced/self-hosting) if you haven't already.

Create a new project, open **Project settings**, and go to the **Migrations** tab. Click **Create migration** and select **Firebase** as the source. Paste the contents of the JSON key file, select the resources to migrate, and click **Start migration**.

You can also start a migration from a Server SDK with `createFirebaseMigration`, using an API key with the `migrations.write` scope.

## Step 4: Finish the move

Once the migration completes:

- Add your web, Flutter, Android, and iOS apps as platforms in your Appwrite project. Appwrite rejects requests from apps it doesn't know.
- Review the [permissions](/docs/advanced/security/permissions) on migrated resources so users can only reach their own data.
- Rewrite your Cloud Functions on a supported [Appwrite Functions runtime](/docs/products/functions/runtimes).

# Read more about Firebase and Appwrite

If you would like to learn more about migrating from Firebase to Appwrite, we have some resources that you should visit:

- [Migrate from Firebase](/docs/advanced/migrations/firebase)
- [Appwrite Migrations overview](/docs/advanced/migrations)
- [Appwrite vs Firebase: An open source alternative for Firebase](/blog/post/open-source-firebase-alternative)
- [Firebase Admin SDK service accounts](https://firebase.google.com/docs/admin/setup)
