firebase::ModuleInitializer

#include <util.h>

Utility class to help with initializing Firebase modules.

Summary

This optional class handles a basic Firebase C++ SDK code pattern: attempt to initialize a Firebase module, and if the initialization fails on Android due to Google Play services being unavailable, prompt the user to update/enable Google Play services on their device.

If the developer wants more advanced behavior (for example, wait to prompt the user to update or enable Google Play services until later, or opt not to use Firebase modules), they can still initialize each Firebase module individually, and use google_play_services::MakeAvailable() directly if any initializations fail.

Constructors and Destructors

ModuleInitializer()
~ModuleInitializer()

Public types

InitializerFn)(::firebase::App *app, void *context) typedef
Initialization function, which should initialize a single Firebase module and return the InitResult.

Public functions

Initialize(::firebase::App *app, void *context, const InitializerFn *init_fns, size_t init_fns_count)
Future< void >
Initialize Firebase modules by calling one or more user-supplied functions, each of which must initialize at most one library, and should return the InitResult of the initialization.
Initialize(::firebase::App *app, void *context, InitializerFn init_fn)
Future< void >
Initialize one Firebase module by calling a single user-supplied function that should initialize a Firebase module and return the InitResult.
InitializeLastResult()
Future< void >
Get the result of the most recent call to.

Public types

InitializerFn

InitResult(* InitializerFn)(::firebase::App *app, void *context)

Initialization function, which should initialize a single Firebase module and return the InitResult.

Public functions

Initialize

Future< void > Initialize(
  ::firebase::App *app,
  void *context,
  const InitializerFn *init_fns,
  size_t init_fns_count
)

Initialize Firebase modules by calling one or more user-supplied functions, each of which must initialize at most one library, and should return the InitResult of the initialization.

This function will run the initializers in order, checking the return value of each. On Android, if the InitResult returned is kInitResultFailedMissingDependency, this indicates that Google Play services is not available and a Firebase module requires it. This function will attempt to fix Google Play services, and will retry initializations where it left off, beginning with the one that failed.

Note:If a pending Initialize() is already running, this function will return the existing Future rather than adding any new functions to the initializer list.

Details
Parameters
app
The firebase::App that will be passed to the initializers, as well as used to fix Google Play services on Android if needed.
context
User-defined context, which will be passed to the initializer functions. If you don't need this, you can use nullptr.
init_fns
Your initialization functions to call, in an array. At their simplest, these will each simply call a single Firebase module's Initialize(app) and return the result, but you can perform more complex logic if you prefer.
init_fns_count
Number of initialization functions in the supplied array.
Returns
A future result. When all of the initializers are completed, the Future will be completed with Error() = 0. If an initializer fails and the situation cannot be fixed, the Future will be completed with Error() equal to the number of initializers that did not succeed (since they are run in order, this tells you which ones failed).

Initialize

Future< void > Initialize(
  ::firebase::App *app,
  void *context,
  InitializerFn init_fn
)

Initialize one Firebase module by calling a single user-supplied function that should initialize a Firebase module and return the InitResult.

See also:Initialize(::firebase::App*, void*, const InitializerFn*) for more information.

InitializeLastResult

Future< void > InitializeLastResult()

Get the result of the most recent call to.

See also:Initialize().

ModuleInitializer

 ModuleInitializer()

~ModuleInitializer

virtual  ~ModuleInitializer()

Send feedback about...

Need help? Visit our support page.