Organizing Projects

As part of the Firebase migration you will potentially need to change the way your apps are grouped on the Firebase dashboard. Fabric and Firebase organize apps in different ways and to best prepare for future Firebase adoption we’ve created this guide.

In Fabric, we group apps into organizations. Fabric organizations are used to establish dashboard access for your team and are separated by API key.

In Firebase, apps are organized into projects. Projects provide a rich set of shared resources. While user access and keys remain organized by project like organizations in Fabric, Firebase also shares some data across multiple apps within the same project.

Examples of shared resources in Firebase:

  • Reporting across multiple apps in Analytics.
  • Shared user sets in Firebase Authentication.
  • Shared database in Firestore or Real Time Database.

Please note:

  • Firebase limits the number of apps per project to around 20 depending on your billing tier.
  • Firebase tools have deep integrations with each other and if you want to share data across multiple apps, they should be in the same project.
  • After you create an app within a project, you cannot move it to a different project without losing your historical data.

In the Fabric to Firebase migration flow you’ll be presented with this screen that allows you to organize your apps into projects.

../../_images/fabric_migration.png

Recommendations for how to set up your projects in Firebase

Scenario 1:

A team of devs have many identical apps that only differ by language.

Fabric organization:

com.example.english

com.example.spanish

com.example.german

com.example.french

Solution: In this case it makes sense to organize all the apps into one Firebase project so reporting can be seen across the full user base.

Scenario 2:

A large company has test, debug, and release environments for all apps.

Fabric organization:

com.example.test

com.example.debug

com.example.release

Solution: To keep our testing out of our production statistics and to prevent other data crossover from Firebase products like Cloud Firestore, creating three Firebase projects makes the most sense.

Scenario 3:

A devshop has many clients with different apps.

Fabric organization 1:

com.client1.app

com.client1.app2

Fabric organization 2:

com.client2.app

Fabric organization 3:

com.client3.app

com.client3.app2

Solution: Keep client data in separate Firebase projects; one for each customer will provide the best isolation.