我有一个users
集合和一个rentals
集合。 rental
文档有一个用于租借该项目的用户的字段,该字段存储为文档参考(rentalDocumentSnapshot['renter'] = /users/<some id here>
)。要查询所有您是租房者的租金,我只需进入信息流:
Firestore.instance.collection('rentals')
.where('renter', isEqualTo: Firestore.instance.collection('users').document(myUserID))
.snapshots()
调用Firestore.instance.collection('users').document(myUserID)
是否会创建一个读取?因此,将用户ID作为字符串而不是文档引用存储在租金中会更好吗?
答案 0 :(得分:2)
创建DoucumentReference不会引起读取。您实际上必须get()
才能阅读该文档。您可以将引用视为指向文档的指针。
存储引用而不是ID或路径不一定更好或更糟。这主要是为了方便和偏好。引用通常更易于使用,因为您不必构建该引用,但是正如我所说,构建该引用是免费的。引用通常会存储更多数据,因为它存储的是文档的整个路径,而不仅仅是ID。