Appwrite migrations help you quickly migrate your data from Firebase or other sources to Appwrite. You can follow the instructions on the Appwrite Console migration wizard or use this guide to perform your data migration. While migrations are a great way to move your data from other services to Appwrite and get started quickly, they're not perfect. Make sure to understand the different limitations before completing your migration.
Charges
When you migrate data from Firebase to Appwrite Cloud, the resource usage during the migration will not count towards your Appwrite Cloud usage charges. However, Firebase, may have data transfer charges.
Create service account
To begin migrating to Appwrite, follow these steps.
Open your Firebase console.
Access your Project Settings by clicking the gear icon.
Click on Service Accounts, then click on the Manage service account permissions link, which will redirect you to the Google Cloud Console.
Click on Create Service Account, provide a name, ID, and description, and click Continue.
Grant the service account the following roles
Role | Description |
Firebase Viewer | Read access to your entire Firebase project, including Database and Storage. |
Identity Toolkit Viewer | Read access to your users, including their hash config. |
Create API key
Find the service account you just created.
Click the triple-dot icon to the right to see more options and click the Manage keys botton.
Click Add Key and select Create new key. Choose JSON as the key type and click Create. This will download a JSON file to your computer.
Start Migration
Create a new project and navigate to the Migrations tab in Project Settings.
Click on the Create Migration button and select Firebase as your source.
Upload the JSON file to Appwrite and follow the migration wizard to select which resources you need to migrate. Finally click Start migration to begin the migration process.
Next steps
In your Appwrite Console, navigate to Overview > Integrations > Platforms, add the platforms for your Web, Flutter, Android, and iOS apps. Appwrite will reject requests from unknown web, Flutter, and mobile apps to protect from malicious attacks. You app must be added as a platform for Appwrite to accept requests.
Remember to add appropriate permissions to the migrated resources to protect user data and privacy.
Migrate functions manually, by pick a runtime and learn to develop Appwrite Functions.
Explore Appwrite's unique features by exploring the rest of the Appwrite Documentation.
Limitations
Not all vendors make their APIs publicly accessible or easy to use for extracting and fully owning your data. Furthermore, due to varying design philosophies, certain resources cannot be migrated on a one-to-one basis. Below, you'll find a list of some known limitations when migrating data from Firebase to Appwrite. It's advisable to review this list before initiating your migration or deploying your product in a production environment.
Appwrite Migrations only supports Firestore as a database source; Realtime Database is currently not supported.
At the moment, only top-level document migration is supported. Nested documents will not be migrated automatically.
OAuth users will not be migrated because the sessions are managed by the third-party OAuth provider. Users will need to re-authenticate with your OAuth provider after the migration is complete.
Functions are not automatically migrated because of syntax and runtime differences.