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 数据进行验证?

如何设计Cloud Firestore数据库架构

Firestore / Cloud功能 - 如何在更改时更新Firestore数据

如何在 Cloud 函数中读取 Firestore 文档更新之前/之后的值?

Firebase Firestore 是不是可以使用 Cloud 功能进行实时更新?

停止在颤动中收听 Cloud Firestore 中的快照更新