我读从火力地堡的云计算公司的FireStore一些数据,但我已经看到了几种方法来做到这一点。我看到的示例使用了get和onSnapshot函数,如下所示:
db.collection("cities").doc("SF")
.onSnapshot(doc => {
console.log(doc.data());
});
或这个
var docRef = db.collection("cities").doc("SF");
docRef.get().then(doc => {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
它们之间有什么区别吗?
答案 0 :(得分:3)
如doc中所述:
有两种方式可以检索Cloud Firestore中存储的数据。要么 这些方法中的一种可以用于文档,文档集合, 或查询结果:
- 调用方法以获取数据。
- 设置一个侦听器以接收数据更改事件。
设置监听器后,Cloud Firestore会向您的监听器发送一个 数据的初始快照,然后每次 文档更改。
使用get()
时,“仅检索一次”即可“检索单个文档的内容”。这是一种“忘却”:如果文档在(后端)Firestore数据库中发生更改,则需要再次调用get()
才能看到更改。
反之,如果您使用onSnapshot()
方法,您将按照doc中的说明不断收听文档:
您可以使用
onSnapshot()
方法收听文档。首字母缩写 使用您提供的回调进行调用以创建文档快照 立即使用单个文档的当前内容。然后, 每次内容更改时,另一个调用会更新文档 快照。
如这些文档所述,这两种方法适用于一个文档或文档集合(包括query)。