Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 听元数据firestore_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 听元数据firestore

Javascript 听元数据firestore,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我对Firestore是个新手,学习很多东西。在我的学习道路上,我已经到达Firebase文档中的 这看起来非常有用,但我无法理解如何测试它。这是文档中的代码 db.collection("cities").doc("SF") .onSnapshot({ // Listen for document metadata changes includeMetadataChanges: true }, function(doc) { //

我对Firestore是个新手,学习很多东西。在我的学习道路上,我已经到达Firebase文档中的

这看起来非常有用,但我无法理解如何测试它。这是文档中的代码

db.collection("cities").doc("SF")
    .onSnapshot({
        // Listen for document metadata changes
        includeMetadataChanges: true
    }, function(doc) {
        // ...
    });
我添加了我的简单更新命令来查看发生了什么,它每秒钟都在更新。我想知道它想给我什么?在什么情况下我可以使用它?为什么它每秒钟都在更新

 firebase.firestore().collection("cities").doc("DC")
    .onSnapshot({
        // Listen for document metadata changes
        includeMetadataChanges: true
    }, function(doc) {
        // ...
    var docRef = firebase.firestore().collection('cities').doc('DC');
     var updateTimestamp = docRef.update({
     timestamp: firebase.firestore.FieldValue.serverTimestamp()
 });
    });

实际上你创造了现代无限循环

您订阅了
DC
文档的
snapshotChanges
(用于数据和元数据),因此这意味着您将收到文档中的任何更改。当您第一次运行它时,当前数据将作为第一次运行订阅提供

然后在subscribe中,您更新同一文档,这意味着您的订阅将一次又一次地运行

 firebase.firestore().collection("cities").doc("DC")
    .onSnapshot({includeMetadataChanges: true}, (docSnapshot) => {
        console.log(docSnapshot);
    });

你能不能修改我的代码,使它只运行一次,这样我就可以理解我得到了什么。其次,我要创建一个单独的问题,因为我想使用
元数据列出在我的系统上仍处于脱机状态的条目。hasPendingWrites
集合名-城市
文档名-DC
我看到了,它是返回对象,我已经编辑了我的问题,我想如果我能到达那里,我将能够完全使用它。如果你想,我可以把它作为一个单独的question@user2828442我建议不要把这些问题混在一起,关于离线提交一个新的问题好吧,这里增加了一个新的问题-我建议忽略所有免费工作的请求(以及其他线程上的请求)。