Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否应通过AngularFirestoreCollection更新AngularFire中的Firstore项目?_Javascript_Angular_Performance_Google Cloud Firestore_Angularfire - Fatal编程技术网

Javascript 是否应通过AngularFirestoreCollection更新AngularFire中的Firstore项目?

Javascript 是否应通过AngularFirestoreCollection更新AngularFire中的Firstore项目?,javascript,angular,performance,google-cloud-firestore,angularfire,Javascript,Angular,Performance,Google Cloud Firestore,Angularfire,在我的应用程序中,我有一个需要“或”条件的列表。但是,正如: 在这种情况下,您应该为每个OR条件创建一个单独的查询,并在应用程序中合并查询结果 因此,在我的服务中,我管理两个查询,并将它们作为单个可观察列表呈现给消费者 问题在于更新。我可以选择做额外的工作,将需要更新的项目匹配到正确的集合,以便我可以执行以下操作: myCollection.doc(item.id).update(item); 或者我可以让这更简单,更公正: angularFirestore.doc(`path/to/${it

在我的应用程序中,我有一个需要“或”条件的列表。但是,正如:

在这种情况下,您应该为每个OR条件创建一个单独的查询,并在应用程序中合并查询结果

因此,在我的服务中,我管理两个查询,并将它们作为单个可观察列表呈现给消费者

问题在于更新。我可以选择做额外的工作,将需要更新的项目匹配到正确的集合,以便我可以执行以下操作:

myCollection.doc(item.id).update(item);
或者我可以让这更简单,更公正:

angularFirestore.doc(`path/to/${item.id}`).update(item);
我的操作假设第一种方法将导致更快的更新,因为我使用的是同样的参考,它会立即乐观地更新。后者会更慢,因为更新持久性层会更全面,然后集合引用会在稍后得到通知(可能还是很短的时间)

然而,以上所有这些都是假设。我只是用一些随机的例子来支持这一点,在这些例子中,我看到更新或删除需要一两秒钟才能显示在视图的另一部分,但我无法实际检查这个过程


有人知道上面的说法是否正确吗?我应该做额外的工作来编写集合引用,还是angularfire(和/或firestore)处理了这个问题并使它们在引擎盖下有效地执行相同的操作?

AngularFire2是RxFire的薄包装,它本身是Firebase JavaScript SDK的薄包装

通过AngularFire更新文档与直接通过JavaScript SDK更新文档之间应该没有明显的性能差异。在这两种情况下,大部分时间都花在JavaScript SDK上,以及客户端和服务器之间的连接上。出于这个原因,我通常直接通过JavaScript SDK进行更新,因为它通常更直接一些,而且AngularFire抽象在写操作中对我没有什么优势。鉴于AngularFire是在这个SDK之上构建的,所以即使不是通过AngularFire进行更改,它也会立即获取更改


如果您有一个实例,但情况似乎并非如此,我建议您使用最小、完整/独立的代码创建一个问题,以再现该问题。

感谢您的深入了解。这将省去我在集合引用中进行路由的麻烦,并简化我的代码。