Crates.io | firebase |
lib.rs | firebase |
version | 0.9.1 |
source | src |
created_at | 2015-04-09 18:58:05.547081 |
updated_at | 2015-12-11 23:58:51.47213 |
description | Rust based library for working with Firebase, currently still under heavy development |
homepage | |
repository | https://github.com/davidrhyswhite/rust-firebase |
max_upload_size | |
id | 1824 |
size | 28,745 |
Rust based library for interacting with the Firebase REST API.
Don't forget to include the library in your project:
extern crate firebase;
use firebase::Firebase;
You can currently create a simple reference to your firebase server:
let firebase = Firebase::new("https://<your-firebase>.firebaseio.com");
Or you can create an authenticated connection by supplying your auth token:
let firebase = Firebase::authed("https://<your-firebase>.firebaseio.com", "<token>");
NOTE: You must send your requests through HTTPS or Firebase will reject it. Not specifying HTTPS will also result in an error: ParseError::UrlIsNotHTTPS
Reference nested objects in your server like so:
let show = firebase.at("/shows/futurama"); // points to /shows/futurama
let episode = show.at("s10/meanwhile"); // points to /shows/futurama/s10/meanwhile
Slashes and .json extensions will be handled accordingly:
// All of the following are equivalent:
let show = firebase.at("/shows/futurama.json");
let show = firebase.at("shows/futurama/");
let show = firebase.at("/shows/futurama/");
Reading data can be done with a simple call to .get()
let response = show.get();
let description = episode.at("description");
let response = description.set("the last episode");
let episodes = firebase.at("/shows/futurama/episodes");
let response = episodes.push("The Lost Episode!");
let description = episode.at("description");
let response = description.update("the penultimate episode");
let episode = firebase.at("/shows/futurama/s10/meanwhile");
let response = episode.remove();
let episodes = firebase.at("/shows/futurama/episodes");
let top5 = episodes.order_by("\"imdb\"").limit_to_first(5).get();
The full list of supported parameters are listed here:
order_by
limit_to_first
limit_to_last
start_at
end_at
equal_to
shallow
For now JSON is sent and received as a string literal, an easier method is likely to be implemented in future versions
let json = "{ \"name\": \"David Smith\" }"
let people = firebase.at("/earth/us/indiana");
let response = episodes.push(json);