Crate firestore_path
source ·Expand description
A Firestore path helper.
use firestore_path::{CollectionId, CollectionName, DatabaseId, DatabaseName, DocumentId, DocumentName, ProjectId};
use std::str::FromStr;
fn main() -> anyhow::Result<()> {
let project_id = ProjectId::from_str("my-project")?;
let database_id = DatabaseId::from_str("my-database")?;
let database_name = DatabaseName::new(project_id, database_id);
let document_name: DocumentName = database_name
.collection("chatrooms")?
.doc("chatroom1")?
.collection("messages")?
.doc("message1")?;
assert_eq!(
document_name.to_string(),
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
);
assert_eq!(document_name.document_id().as_ref(), "message1");
let collection_name: CollectionName = document_name.parent();
assert_eq!(
collection_name.to_string(),
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
);
assert_eq!(collection_name.collection_id().as_ref(), "messages");
Ok(())
}
Structs
- A collection id.
- A collection name.
- A collection path.
- A database id.
- A database name.
- A document id.
- A document name.
- A document path.
- An error that occurs in this crate.
- A project id.