如何在Firestore中查询DocumentReference

时间:2017-12-02 13:11:28

标签: javascript firebase google-cloud-firestore

我有一系列条形码,在每个文件中我都有一个字段,其中包含一个酒吧老板的参考。

Illustrative image

我正在尝试使用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而不是完整的引用会使系统的其他部分失效。

1 个答案:

答案 0 :(得分:0)

为了查询参考字段,您应该创建一个DocumentReference对象,该对象与您要查询的位置匹配,并使用该对象。请注意,这需要是本地Firestore引用,因为AngularFirestoreCollectionAngularFirestoreDocument只会作为“自定义对象类型”显示给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在这种情况下可以工作,因此我显然无法进行准确的测试。但这应该为您指明正确的方向。