In Firestore you can create objects with data type Reference. But this is just the path to said document. What\'s the difference between using this and just using the id as
A Reference
contains the entire path to a document, whereas a simple string ID has no context. Granted, you could just store the path as a string instead, but for convenience (and ease of use in custom objects) it can be useful to have the entire Reference
object stored.
The sort order of a Reference
is also different to that of a String
. From the Supported Data Types documentation:
- Reference sort order: By path elements (collection, document ID, collection, document ID...)
- Text string sort order: UTF-8 encoded byte order
This means that you can also filter on a Reference
object in the database by comparing it to another when writing queries.
For example:
var reference = db.collection("test").document("1");
var query = db.collection("test").orderBy("ref").where("ref", ">", reference);