firebase_rs_sdk/app/
namespace.rs1use crate::app::api;
2use crate::app::errors::AppResult;
3use crate::app::logger::{LogCallback, LogLevel, LogOptions};
4use crate::app::types::{FirebaseApp, FirebaseAppSettings, FirebaseOptions};
5use crate::auth::error::{AuthError, AuthResult};
6use crate::auth::{self, Auth};
7use std::sync::Arc;
8
9pub struct FirebaseNamespace;
10
11impl FirebaseNamespace {
12 pub fn initialize_app(
14 options: FirebaseOptions,
15 settings: Option<FirebaseAppSettings>,
16 ) -> AppResult<FirebaseApp> {
17 api::initialize_app(options, settings)
18 }
19
20 pub fn app(name: Option<&str>) -> AppResult<FirebaseApp> {
22 api::get_app(name)
23 }
24
25 pub fn apps() -> Vec<FirebaseApp> {
27 api::get_apps()
28 }
29
30 pub fn register_version(library: &str, version: &str, variant: Option<&str>) {
32 api::register_version(library, version, variant)
33 }
34
35 pub fn set_log_level(level: LogLevel) {
37 api::set_log_level(level)
38 }
39
40 pub fn on_log(callback: Option<LogCallback>, options: Option<LogOptions>) -> AppResult<()> {
42 api::on_log(callback, options)
43 }
44
45 pub fn sdk_version() -> &'static str {
47 api::SDK_VERSION
48 }
49
50 pub fn auth(app: Option<FirebaseApp>) -> AuthResult<Arc<Auth>> {
52 auth::api::register_auth_component();
53 let app = match app {
54 Some(app) => app,
55 None => api::get_app(None).map_err(AuthError::from)?,
56 };
57 auth::api::auth_for_app(app)
58 }
59}