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 String field? Any advantages/disadvantages?
Asked
Active
Viewed 3,911 times
1 Answers
19
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);

Grimthorr
- 6,856
- 5
- 41
- 53
-
Could you please elaborate in the pros & cons? Thanks! – Daniel May 27 '22 at 23:25