Compare Fusio to Firebase

Technology

Firebase provides its own NoSQL database where all your data is stored, it is an easy-to-use and scalable way to store your data but this means your data is stored in a proprietary database. You can then use the SDK of Firebase to i.e. set db.collection("cities").doc("[ID]").set(docData) or get db.collection("cities").doc("[id]").get() data in your app. To handle additional business logic you can use Cloud Functions which can be called directly from your app.

Fusio has a different approach, instead of directly working with a database you need to define operations, an operation is assigned to a specific HTTP route like GET /cities which then invokes an action on invocation. An action is basically like a Cloud Function which contains your business logic and which produces a response. Through this approach Fusio generates fully typed client SDKs. This means your SDK is not generic instead it represents your concrete use-case. I.e. the generated SDK would look like client.cities().create(docData) or client.cities().get("[id]") with complete type-safe models.

Fusio

  • Classical relational database like Mysql or Postgres
  • Easy self-hosting on a simple VHost or large cloud provider
  • Generate fully type-safe TypeScript definitions
  • Build a cleaner design for your app by using a DI container
  • Handle authorization and supports multiple external identity provider
  • Provides Javascript, PHP, Java, Go and Angular SDKs

Firebase

  • Easy to get started
  • Hosted in the Google Cloud which provides great performance and scaling
  • Use Cloud Functions to handle additional business logic
  • High usage based pricing
  • Vendor lock-in
  • Proprietary database