Cloud Firestore 实时更新能否监听多个集合,即集合名称中有一个变量? [复制]
Posted
技术标签:
【中文标题】Cloud Firestore 实时更新能否监听多个集合,即集合名称中有一个变量? [复制]【英文标题】:Can Cloud Firestore realtime updates listen to multiple collections, i.e., with a variable in the collection name? [duplicate] 【发布时间】:2018-12-18 19:03:13 【问题描述】:这个监听器效果很好:
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
过滤器),但没有说我们可以收听多个集合。
【问题讨论】:
【参考方案1】:您目前不能有一个查询跨集合,既不是***集合,也不是子集合。如果需要跨集合查询,每个集合需要有一个查询,并且必须在客户端合并查询结果。
另见Firestore query subcollections
【讨论】:
以上是关于Cloud Firestore 实时更新能否监听多个集合,即集合名称中有一个变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Cloud Storage 规则能否针对 Firestore 数据进行验证?
Firestore / Cloud功能 - 如何在更改时更新Firestore数据
如何在 Cloud 函数中读取 Firestore 文档更新之前/之后的值?