在Firestore中使用DocumentReference和仅使用id之间有什么区别?

cam*_*a94 5 firebase google-cloud-firestore

在Firestore中,您可以使用数据类型Reference创建对象.但这只是通往该文件的途径.使用它和使用id作为String字段有什么区别?有什么优点/缺点?

Gri*_*orr 10

A Reference包含文档的完整路径,而简单的字符串ID没有上下文.当然,您可以将路径存储为字符串,但为了方便(以及在自定义对象中使用),Reference存储整个对象会很有用.

a的排序顺序也与a的排序顺序Reference不同String.从支持的数据类型文档:

  • 引用排序顺序:按路径元素(集合,文档ID,集合,文档ID ...)
  • 文本字符串排序顺序:UTF-8编码的字节顺序

这意味着您还可以Reference编写查询时通过与数据库中的对象进行比较来过滤数据库中的对象.

例如:

var reference = db.collection("test").document("1");
var query = db.collection("test").orderBy("ref").where("ref", ">", reference);
Run Code Online (Sandbox Code Playgroud)