Blog

Backendless VS. Firebase

by on January 22, 2020

Introduction

For those looking to streamline app backend development, there are many MBaaS platforms to choose from. In this article, we will compare the Backendless platform to one of the largest alternatives, Google’s Firebase. We will review functionality available in the following categories:

  1. Data Management – We will examine how each platform approaches managing and manipulating data. This includes features such as data import and export, schema creation and modification, and data validation.
  2. User Management – We will review the features that these platforms offer for managing user data and profiles.
  3. File Management – We will discuss how each platform facilitates saving and sharing files, including file upload both within the platform and via API, and file management within the platform’s UI.
  4. Real-Time Messaging – We will compare the platforms’ real-time data capabilities to determine which provides the greatest flexibility.

Data Management

The ultimate value of a database platform is derived from the ease at which it allows you to work with your data using the APIs and manage it with an administrative interface. Ideally, you will be able to see individual objects in each table and manage your table schema (add, rename, and delete columns, set constraints, default values and establish validators for insertion and update operations).

Even more beneficial is the ability to run search queries on your data. As your database grows, it will become increasingly more difficult to find the data you are searching for. Having the ability to use a familiar language such as SQL to search your data quickly can be very valuable.

Architecting a database is challenging, but more challenging still can be modifying that architecture as your application’s needs change. Schema management tools may feature database indexes, constraints, and data validators to make modifying your database structure easier.

If the backend provider does not offer this flexibility, you may face significant challenges if you need to add columns to a table in the future. You may even need to entirely recreate the database to institute any changes.

In addition to those discussed above, some additional features to be on the lookout for include:

  • Establish cross-table relations at the schema level.
  • Establish object-relations using the administrative interface as well as the APIs.
  • Manage spatial data with a visual interface.
  • Generate API docs for CRUD operations.
  • Assign data validators to your table columns, ensuring only properly formatted data is added to a given column.
  • Assign a default value to your columns.
  • Edit multiline text in data objects.
  • Utilize data import and export functions, such as exporting a data table (both in its entirety and limited to a subset defined by a query) and importing data into your database.
  • Personalize the order of table columns in your console.
  • Hide columns that you don’t need to view.
  • Build and run REST requests graphically
Backendless Logo
Backendless Schema and Data Validation
Features Backendless Logo
Can see individual objects in each table
Can manage table schema (add, rename, delete columns)
Can assign indexes to table columns
Can assign data validators to columns
Can assign default value to columns
Can run search queries for data
Can sort data in console
Can edit data objects in console
Can create relation columns between data tables
Can create new objects in database using console
Can delete data objects in console
Can edit multiline text in data objects
Can navigate through large amounts of data using paging
Can export subset of data loaded by query
Can export the entire table
Can import data into the database
Can personalize order of columns in console
Can hide columns to simplify data views
Can build and run REST requests graphically
Can generate API docs (OpenAPI, Swagger, RAML) for CRUD operations

User Management

A mobile backend as a service platform will typically be constructed with user management at the top of mind. Your team – developers and administrators alike – can benefit from being able to view a list of users in a user-friendly console and enable and disable users.

It can also be useful to have the ability to securely change user passwords while maintaining user privacy; however, it needs to be possible to disable this feature as well. Having the ability to create new users and import and export user accounts provides added flexibility when migrating user data or assisting users.

The ability to manage custom user properties provides added flexibility and customization for your user data. User properties help you understand your user base’s demographics which, in turn, can help guide your app features and content.

Finally, in an increasingly social media-connected landscape, it can be beneficial for the user management console to enable you to see all of your social users and configure the social signup process.

Backendless Logo
Backendless User Management
firebase_logo
Firebase User Management
Features Backendless Logo
Can see a list of users in console
Can change password
Can enable/disable user
Can create new users
Can import user accounts
Can export user accounts
Can define custom user properties
Can see guest users (guest login API)
Can see social users (Facebook, Twitter, Google logins)
Can configure Facebook authentication in console
Can configure Twitter authentication in console
Can configure Google authentication in console

File Management

Not all backend services provide an integrated file management system, which can mean finding multiple providers that are compatible with each other. For example, you may host your databases with one service and your files with another.

The ideal MBaaS platform includes built-in file storage and a graphical file manager. A file manager may allow you to view and modify the names of files and directories. You may also be able to upload files with a simple drag and drop, and edit files inline in the Console.

Some platforms allow you to zip, unzip, and archive directories. This allows you to reduce the size of files delivered from your backend to users that request them, consequently increasing the speed of the transfer.

Zipping can also be used to reduce clutter and storage usage in your file directories. If you need to access zipped files that get added to your directory, or if you need zipped directories back, the system may also let you unzip them as well.

Additionally, the capability to search for files and directories recursively can save time and complexity in file service APIs.

Finally, you may want the ability to generate API docs for all of your file storage operations. API docs are valuable for collaborating within your development team, maximizing code reuse, and potentially interacting with external API hosting services.

Backendless File Manager
Firebase File Manager
Features Backendless Logo
Can see a list of files and directories organized into a hierarchy
Can rename a file or a directory
Can navigate through the directory structure
Can upload files with drag and drop
Can create new directories
Can edit files inline in console
Can delete a file or a directory
Can zip/archive directories
Can unzip archives
Can get a public URL for a file
Can recursively search for files and directories
Can generate API docs (OpenAPI, Swagger, RAML) for file storage operations

Real-Time Messaging

Real-Time has become a minimum requirement for many backends. Real-time messaging facilitates the sharing of information instantly from one user to another or from the backend to a client. This is integral to a business as it allows information such as customer profiles and orders to pass instantly from the customer or one internal department to the department that needs it.

The capability to publish messages in a variety of data types and formats makes real-time even more powerful. For example, a message can be a primitive value (i.e. a number or a string) or a complex object structure, it could be a JSON object published by a JavaScript or REST client, or a Java object published by an Android or Java app. Add to the mix iOS publishers and business logic (Cloud Code), which can also publish messages, you have a wide variety of possibilities for what a message may look like.

Real-time messaging also allows for chat within your application. Chat functionality is finding its way into many types of apps, so it’s always valuable to have that capability available. Not only will you want to send push notifications from the console, your backend should also facilitate real-time chat between users.

Additional features of interest include the ability to add smart-text into messages, filter received messages, and unsubscribe from messages, messaging channels, or all messages. These features ensure your app users have the ideal experience when working with your app.

Realtime Cross Platform
Features Backendless Logo
Can publish messages in different data types
Can send personalized push notifications (user segment)
Can schedule messages
Can send messages from client side
Can edit and send messages from console
Can send an image in the notification payload
Can handle messages on the client side
Can add smart-text into message
Can filter received messages
Can unsubscribe from messages

Summary

There are many MBaaS platforms on the market that offer some or most of the features discussed in this article, but very few that offer them all. While number of features is not the only deciding factor when choosing a backend provider, it is an indication of the versatility and innovation built into the platform.

Although both Backendless and Firebase are fully capable MBaaS platforms, the extent of those capabilities varies greatly. Where Firebase offers utilitarian solutions for most of the basic needs of a developer, Backendless provides a robust solution for almost any backend need.

If you would like to try Backendless for yourself, you can begin a free trial of Backendless Cloud here or install Backendless Pro on your own machine for a free trial.

Leave a Reply