16 个稳定版本
2.1.2 | 2024年6月14日 |
---|---|
2.1.0 | 2024年3月6日 |
2.0.9 | 2023年10月10日 |
2.0.8 | 2023年7月13日 |
1.0.3 | 2020年4月27日 |
#334 in 网页编程
每月 168 次下载
25KB
437 行
firebase-rs
Rust 语言实现的 Firebase 库。
完整文档
功能
- 服务器发送事件(流)(https://github.com/emreyalvac/firebase-rs#read-data-as-stream)
- 泛型有效负载
如何使用
加载库
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").at("users").unwrap();
let stream = firebase.with_realtime_events().unwrap();
stream
.listen( | event_type, data| {
println ! ("Type: {:?} Data: {:?}", event_type, data);
}, | err| println!("{:?}", err), false).await;
读取数据
以字符串形式读取数据
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;
贡献者
感谢这些可爱的人 ✨
依赖项
~8–20MB
~303K SLoC