1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use super::*;
pub fn read_by_name<T>(auth: &impl FirebaseAuthBearer, document_name: impl AsRef<str>) -> Result<T>
where
for<'b> T: Deserialize<'b>,
{
let url = firebase_url_base(document_name.as_ref());
let mut resp = auth
.client()
.get(&url)
.bearer_auth(auth.access_token().to_owned())
.send()?;
extract_google_api_error(&mut resp, || document_name.as_ref().to_owned())?;
let json: dto::Document = resp.json()?;
Ok(document_to_pod(&json)?)
}
pub fn read<T>(auth: &impl FirebaseAuthBearer, path: &str, document_id: impl AsRef<str>) -> Result<T>
where
for<'b> T: Deserialize<'b>,
{
let document_name = format!(
"projects/{}/databases/(default)/documents/{}/{}",
auth.project_id(),
path,
document_id.as_ref()
);
read_by_name(auth, &document_name)
}