如何解决Firestore实时监听多个文档的实时监听器
我想知道Firestore的实时侦听器是否支持async
await
而不是Promise?
文档建议:
var unsubscribe = db.collection("cities").where("state","==","CA").onSnapshot(function(querySnapshot) {
var cities = [];
querySnapshot.forEach(function(doc) {
cities.push(doc.data().name);
});
console.log("Current cities in CA: ",cities.join(","));
});
unsubscribe();
我可以使用async
await
编写上述实时侦听器吗?我尝试了以下操作,但侦听器不再起作用。另外,将无法再分离侦听器。
var querySnapshot = db.collection("cities").where("state","CA").onSnapshot
var cities = [];
querySnapshot.forEach(function(doc) {
cities.push(doc.data().name);
});
console.log("Current cities in CA: ","));
我该如何使用async
await
编写它,并且还可以使用分离器?
解决方法
异步/等待(与promises一起使用)与侦听器一起使用没有意义。许诺表示以最终值或错误结尾的工作单元。侦听器是一个持续的过程,直到使用取消订阅功能将其删除后,该过程才会结束。它们是根本不同的东西。
如果您要进行一次查询以保证可以等待,则应使用get()
而不是documentation中所述的onSnapshot()
。当结果随时间变化时,如果要更新查询,请仅使用侦听器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。