The Google Firebase Cloud Database is used in many mobile and web applications worldwide and there are well-documented libraries for many languages and platforms. For Delphi, the cross-platform library FB4D supports the Firebase Realtime Database, the Firestore Database, the Firebase Storage (for file storage), and Firebase Functions (for calling server functions). For authentication, FB4D currently supports email/password authentication and anonymous login.
The library builds on the Firebase REST-API and provides all functionality with synchronous and asynchronous methods for the usage within GUI application, services and background threads. Both frameworks VCL and Firemonkey are supported. The library is a pure source code library and relies on class interfaces. For clean and short application code it supports fluent interface design.
This project offers a wiki. Four example applications and a Getting-Started on the wiki will help you to start working with the library. For more detailed questions, the interface reference will provide the answers you need.
You can find more learning videos on the following YouTube channel.
This library requires at least Delphi 10 Seattle. The sample projects are developed with Delphi 10.3 Rio Update 3 and are ready for Delphi 10.4 Sydney.
Hint: The project FB4D_samples_VCL cannot be compiled with Delphi 10.1 Berlin and Seattle because of missing TCardPanel.
The underlying FraSelfRegistration is not affected by this and can be used from Delphi 10 Seattle.
FB4D is developed in pure object pascal and can be used with Firemonkey on all supported plattforms. The library and its sample projects are currently tested with Win64/Win32, Mac64/32, Linux64 by using FMXLinux, iOS64 and Android. (Hint to mobile platforms: The TokenJWT to perform the token verifcation requires the installation of the OpenSSL libraries). For more information about using OpenSSL see the installation of OpenSSL
For authorization token verification and token content extraction this library uses the Delphi JOSE JWT library. Thank you Paolo Rossi for your great library!