此监听器效果很好:
firebase.firestore().collection('Users').doc($scope.user.uid).collection('Spanish').doc('Word_Response').onSnapshot(function(wordResponse) {
但是我们的语言比西班牙语更多。此监听器无效:
firebase.firestore().collection('Users').doc($scope.user.uid).collection($scope.longLanguage).doc('Word_Response').onSnapshot(function(wordResponse) {
在应用程序加载且侦听器开始侦听时, $scope.longLanguage
设置为American_English
。用户可以切换到西班牙语,普通话,芬兰语等,从而更改$scope.longLanguage
。问题在于,在侦听器中,变量$scope.longLanguage
不变。我们可以即时更改集合吗,还是必须为每种语言(即每种集合)编写侦听器?
documentation表示我们可以收听一个集合中的多个文档(使用where
过滤器),但不是说我们可以收听多个集合。
答案 0 :(得分:2)
您目前没有查询范围集合,顶级集合或子集合。如果需要跨集合查询,则每个集合都需要一个查询,并且必须在客户端中合并查询结果。