#firebase #web #api-bindings #http-client

firebae-cm

A Firebase Cloud Messaging Http V1 implementation

6 releases (3 breaking)

0.4.2 Mar 29, 2023
0.4.1 Mar 22, 2023
0.3.0 Mar 21, 2023
0.2.0 Aug 25, 2022
0.1.0 Mar 10, 2022

#4 in #web-programming

MIT license

43KB
690 lines

firebae-cm

Rust crate for Firebase Cloud Messaging Http V1

Information

I recommend to read up on FCM before attempting to use this crate.

What Where
Basic information on FCM https://firebase.google.com/docs/cloud-messaging
Used data structure https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages

Usage

use firebae_cm::{Client, Message, MessageBody, Receiver};
    
async fn send_message() {
    // Setup message
    let receiver = Receiver::topic("subscribers");
    let empty_body = MessageBody::new(receiver);
    let message = Message::new("your_project_id", "your_jwt_token", empty_body);

    // Create client and send message
    let client = Client::new();
    let res: Result<String, firebae_cm::Error> = client.send(message).await;
}

This will result in a post request to https://fcm.googleapis.com/v1/projects/your_project_id/messages:send with the appropriate Authentication: Bearer your_jwt_token header and the following body:

{
   "message":{
      "topic":"subscribers",
   }
}

For more useful examples, see the examples folder.

Dependencies

~5–20MB
~315K SLoC