Expand description
§Firebase Messaging
Rust implementation of the Firebase Cloud Messaging (FCM) web SDK surface. The goal is to mirror the @firebase/messaging APIs so applications can manage web push permissions, registration tokens and foreground/background notifications from Rust (including WASM builds).
Porting status: 40% [#### ] (details)
§Quick Start Example
use firebase_rs_sdk::messaging::{
self, PermissionState, PushSubscriptionManager, ServiceWorkerManager,
};
#[cfg(all(target_arch = "wasm32", feature = "wasm-web"))]
// Requires building with `--features wasm-web,experimental-indexed-db`.
async fn initialise_messaging() -> messaging::error::MessagingResult<()> {
if !messaging::is_supported() {
return Err(messaging::error::unsupported_browser(
"Browser is missing push APIs",
));
}
let mut sw_manager = ServiceWorkerManager::new();
let registration = sw_manager.register_default().await?;
let mut push_manager = PushSubscriptionManager::new();
let vapid_key = "<your-public-vapid-key>";
let messaging = messaging::get_messaging(None).await?;
if matches!(messaging.request_permission().await?, PermissionState::Granted) {
let subscription = push_manager.subscribe(®istration, vapid_key).await?;
let details = subscription.details()?;
let _token = messaging.get_token(Some(vapid_key)).await?;
}
Ok(())
}§References to the Firebase JS SDK
- QuickStart: https://firebase.google.com/docs/cloud-messaging/get-started?platform=web
- API: https://firebase.google.com/docs/reference/js/messaging.md#messaging_package
- Github Repo - Module: https://github.com/firebase/firebase-js-sdk/tree/main/packages/messaging
- Github Repo - API: https://github.com/firebase/firebase-js-sdk/tree/main/packages/firebase/messaging
Structs§
- FcmOptions
- Additional FCM options for a payload.
- Installation
Info - Message
Payload - Message data delivered by Firebase Cloud Messaging.
- Messaging
- Messaging
Error - Notification
Payload - Payload displayed to the user when a notification is shown.
- Push
Subscription Manager - Service
Worker Manager - Service
Worker Registration Handle - Subscription
Info - Token
Record
Enums§
- Messaging
Error Code - Permission
State - Notification permission states as exposed by the Web Notifications API.
Functions§
- available_
in_ service_ worker - available_
in_ window - failed_
default_ registration - get_
messaging - internal_
error - invalid_
argument - invalid_
service_ worker_ registration - is_
supported - Returns
falseoutside a web environment, where the required browser APIs are unavailable. - on_
background_ message - on_
message - permission_
blocked - read_
token - register_
messaging_ component - remove_
token - token_
deletion_ failed - token_
subscribe_ failed - token_
subscribe_ no_ token - token_
unsubscribe_ failed - token_
update_ failed - token_
update_ no_ token - unsupported_
browser - write_
token