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

时间:2017-10-24 01:39:17

标签: firebase google-cloud-firestore

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

1 个答案:

答案 0 :(得分:9)

Reference包含文档的完整路径,而简单的字符串ID没有上下文。当然,您可以将路径存储为字符串,但为方便起见(以及custom objects中的易用性),存储整个Reference对象会很有用。

Reference的排序顺序也与String的排序顺序不同。来自Supported Data Types documentation

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

这意味着您还可以在writing queries时将数据库中的Reference对象与另一个对象进行比较,从而对其进行过滤。

例如:

var reference = db.collection("test").document("1");
var query = db.collection("test").orderBy("ref").where("ref", ">", reference);