我有一系列条形码,在每个文件中我都有一个字段,其中包含一个酒吧老板的参考。
我正在尝试使用doc参考文档。
类似的东西:
orders = this.database.collection("orders",
(ref) => ref.where("barman.path", "==", "barmen/" + this.auth.auth.currentUser.uid),
);
return orders.valueChanges();
barman.path
因为当我获得带有字段引用的文档时,这是获取引用路径的方法。
我已尝试仅使用barman
代替barman.path
。
我已经尝试使用docref(firestore.googleapis.com/pro...
)的完整“路径”来制作。
有什么想法吗?
只放入id而不是完整的引用会使系统的其他部分失效。
答案 0 :(得分:0)
为了查询参考字段,您应该创建一个DocumentReference
对象,该对象与您要查询的位置匹配,并使用该对象。请注意,这需要是本地Firestore引用,因为AngularFirestoreCollection
和AngularFirestoreDocument
只会作为“自定义对象类型”显示给Firestore。您可以使用AngularFirestore类型的ref
成员来获取它。
我不确定查询的“ .path”部分在哪里,因为您要查询的实际字段是barman
。我已在示例中将其删除。
对于您来说,这看起来像:
const queryReference = this.database
.collection('barmen')
.doc(this.auth.auth.currentUser.uid).ref;
orders = this.database.collection('orders',
(ref) => ref.where('barman', '==', queryReference),
);
return orders.valueChanges();
由于没有足够的代码来证明this.auth.auth.currentUser.uid
在这种情况下可以工作,因此我显然无法进行准确的测试。但这应该为您指明正确的方向。