camendoza94
camendoza94

Reputation: 185

What's the difference between using a DocumentReference in Firestore and using just the id?

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?

Upvotes: 15

Views: 4424

Answers (1)

Grimthorr
Grimthorr

Reputation: 6926

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);

Upvotes: 20

Related Questions