1 个不稳定版本
0.1.0 | 2023 年 3 月 15 日 |
---|
#26 in #firebase
29KB
460 代码行
firebase-rs
基于 Rust 的 Firebase 库。
完整文档
待办事项
- 监听 SSE 事件 - 进行中 (https://github.com/emreyalvac/firebase-rs/pull/11)
- Epoll 集成
如何使用
加载库
use firebase_rs::*;
无认证
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap();
有认证
let firebase = Firebase::auth("https://myfirebase.firebaseio.com", "AUTH_KEY").unwrap();
用于嵌套对象的用法
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users").at("USER_ID").at(...);
读取数据
以字符串形式读取数据
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users");
let users = firebase.get_as_string().await;
使用泛型类型读取数据(所有)
#[derive(Serialize, Deserialize, Debug)]
struct User {
name: String
}
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users");
let user = firebase.get::<HashMap<String, User>>().await;
使用泛型类型读取数据(单个记录)
#[derive(Serialize, Deserialize, Debug)]
struct User {
name: String
}
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users").at("USER_ID");
let user = firebase.get::<User>().await;
设置数据
#[derive(Serialize, Deserialize, Debug)]
struct User {
name: String
}
let user = User { name: String::default() };
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users");
firebase.set(&user).await;
更新数据
#[derive(Serialize, Deserialize, Debug)]
struct User {
name: String
}
let user = User { name: String::default() };
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().at("users").at("USER_ID");
firebase.update(&user).await;
带参数
let firebase = Firebase::new("https://myfirebase.firebaseio.com").unwrap().with_params().start_at(1).order_by("name").equal_to(5).finish();
let result = firebase.get().await;
依赖关系
~6–22MB
~298K SLoC