Stay organized with collections
Save and categorize content based on your preferences.
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.
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 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.
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).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-01-23 UTC."],[],[],null,["firebase::ModuleInitializer\n\n\n`#include \u003cutil.h\u003e`\n\nUtility class to help with initializing Firebase modules.\n\nSummary\n\nThis 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.\n\nIf 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()](/docs/reference/cpp/namespace/google-play-services#namespacegoogle__play__services_1a9b9a9a553ee7476d697260c685074520) directly if any initializations fail.\n\nPublic types \n\nInitializerFn \n\n```c++\nInitResult(* InitializerFn)(App *app, void *context)\n``` \nInitialization function, which should initialize a single Firebase module and return the InitResult.\n\nPublic functions \n\nInitialize \n\n```c++\nFuture\u003c void \u003e Initialize(\n App *app,\n void *context,\n const InitializerFn *init_fns,\n size_t init_fns_count\n)\n``` \nInitialize 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.\n\nThis 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.\n\n\n| **Note:** If a pending [Initialize()](/docs/reference/cpp/class/firebase/module-initializer#classfirebase_1_1_module_initializer_1a99212e8f9418bacd23eab5e26ffa693d) is already running, this function will return the existing [Future](/docs/reference/cpp/class/firebase/future#classfirebase_1_1_future) rather than adding any new functions to the initializer list.\n\n\u003cbr /\u003e\n\nInitialize \n\n```c++\nFuture\u003c void \u003e Initialize(\n App *app,\n void *context,\n InitializerFn init_fn\n)\n``` \nInitialize one Firebase module by calling a single user-supplied function that should initialize a Firebase module and return the InitResult.\n\n**See also:**Initialize(::firebase::App\\*, void\\*, const InitializerFn\\*) for more information. \n\nInitializeLastResult \n\n```c++\nFuture\u003c void \u003e InitializeLastResult()\n``` \nGet the result of the most recent call to.\n\n**See also:** [Initialize()](/docs/reference/cpp/class/firebase/module-initializer#classfirebase_1_1_module_initializer_1a99212e8f9418bacd23eab5e26ffa693d). \n\nModuleInitializer \n\n```c++\n ModuleInitializer()\n``` \n\n\\~ModuleInitializer \n\n```c++\nvirtual ~ModuleInitializer()\n```"]]