# Firerust
A very simple library to implement the Firebase real-time database in your code with the best performance
# Instalation
Add this to your `Cargo.toml`:
```toml
[dependencies]
firerust = { version = "1" }
```
# Usage
Import firerust
```rust
use firerust::FirebaseClient;
```
Initialize a Firebase client without auth
```rust
FirebaseClient::new("https:///.firebaseio.com/")?;
```
Initialize a Firebase client with auth
```rust
let mut client = FirebaseClient::new("https:///.firebaseio.com/")?;
client.auth("");
```
# Examples
A basic example of data fetch:
```rust
use firerust::FirebaseClient;
use serde_json::Value;
let client = FirebaseClient::new("https://docs-examples.firebaseio.com/")?;
let reference = client.reference("/");
println!("{:?}", reference.get::());
```
A basic example of data set:
```rust
use firerust::FirebaseClient;
let client = FirebaseClient::new("https://docs-examples.firebaseio.com/")?;
let reference = client.reference("/");
reference.set(serde_json::json!({
"message": "Setting data"
}))?;
```
A basic example of data update:
```rust
use firerust::FirebaseClient;
let client = FirebaseClient::new("https://docs-examples.firebaseio.com/")?;
let reference = client.reference("/");
reference.update(serde_json::json!({
"message": "Updating data"
}))?;
```
A basic example of data deletion:
```rust
use firerust::FirebaseClient;
let client = FirebaseClient::new("https://docs-examples.firebaseio.com/")?;
let reference = client.reference("/");
reference.delete()?;
```
A snapshot event example:
```rust
use firerust::FirebaseClient;
use serde_json::Value;
let client = FirebaseClient::new("https://docs-examples.firebaseio.com/")?;
let reference = client.reference("/");
reference.on_snapshot(| data: Value | {
println!("{:?}", data);
Ok(())
})?;
```