Javascript Firebase:何时使用onSnapshot

Javascript Firebase:何时使用onSnapshot,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,因此,我知道,如果用户正在查看一个可以由其他用户更新的页面,您应该使用onSnapshot保持前端和后端同步。但是假设用户正在查看一个只有他才能更新的页面,比如显示一些个人信息的页面 假设我有一个字符串Let someData=“Some string”,该字符串在该页面上呈现,只有一个用户可以更新。现在,用户希望更新该字符串中的数据。因此,firestore文档可能会更新如下: const db = firestore(); const someValue = "Some other stri

因此,我知道,如果用户正在查看一个可以由其他用户更新的页面,您应该使用
onSnapshot
保持前端和后端同步。但是假设用户正在查看一个只有他才能更新的页面,比如显示一些个人信息的页面

假设我有一个字符串
Let someData=“Some string”
,该字符串在该页面上呈现,只有一个用户可以更新。现在,用户希望更新该字符串中的数据。因此,firestore文档可能会更新如下:

const db = firestore();
const someValue = "Some other string"  //This value is set through a form for example
db.collection("SomeCollection").doc("SomeDoc").update({data:someValue})
现在,数据更改显然应该显示在UI中

这是我的问题。鉴于只有用户才能看到此页面上的数据,更新UI的正确方法是什么

const db = firestore();
db.onSnapshot(snapshot=>someData = snapshot.data().data);
const someValue = "Some other string"  //This value is set through a form for example
db.collection("SomeCollection").doc("SomeDoc").update({data:someValue});

我的意思是,我应该独立于数据库更新UI,还是作为对数据库文档更改的响应


希望我能把我的问题说清楚。提前谢谢

如果将快照侦听器附加到文档,并编写代码更新该文档,则侦听器将立即被调用(甚至在服务器上发生更改之前)。应该不需要在监听器之外更新UI—只要让监听器立即响应更新并更新UI本身即可。

我不一定要在文档中附加监听器。在这种情况下,我需要附加一个侦听器,或者最好在更新数据库后手动更新UI。在这种情况下,我根本不清楚您在这里要求什么。
const db = firestore();
const someValue = "Some other string"  //This value is set through a form for example
db.collection("SomeCollection").doc("SomeDoc").update({data:someValue});
someData = someValue;