Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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_Polymer 2.x_Polymerfire - Fatal编程技术网

Javascript 使用firestore本地保存数据,稍后再同步

Javascript 使用firestore本地保存数据,稍后再同步,javascript,firebase,google-cloud-firestore,polymer-2.x,polymerfire,Javascript,Firebase,Google Cloud Firestore,Polymer 2.x,Polymerfire,我面临一个将google firestore的离线行为集成到我的聚合应用程序中的问题 我已经创建了一个元素来执行firestore的所有数据库操作。我已经在构造函数中初始化了连接,下面是代码 constructor() { super(); if (!this.db) { firebase.firestore().enablePersistence() .then(() =&g

我面临一个将google firestore的离线行为集成到我的聚合应用程序中的问题

我已经创建了一个元素来执行firestore的所有数据库操作。我已经在构造函数中初始化了连接,下面是代码

constructor() {
            super();
            if (!this.db) {
                firebase.firestore().enablePersistence()
                    .then(() => {
                        this.db = firebase.firestore();
                    })
                    .catch((err) => {
                        if (err.code == 'failed-precondition') {
                        } else if (err.code == 'unimplemented') {
                        }
                    });
            }
        }
我创建了另一个功能,可以将用户详细信息保存到firestore

saveUserAndSync() {
            this.db.collection("users").add(this.userObj)
                .then(function (docRef) {
                    console.log("Document written with ID: ", docRef.id);
                })
                .catch(function (error) {
                    console.error("Error adding document: ", error);
                });
        }
即使在离线状态下,这也非常有效。我面临的最大问题是,如果应用程序脱机,我创建用户,同时如果我重新加载页面,所有数据都会丢失,与firestore的同步将无法工作

有人能为这项工作提出建议吗

我能够使用PockDB和couchDB实现相同的实现,因为PockDB api将首先在本地保存数据,然后将其与couchDB同步


但是firestore会失败。

对于web应用程序,默认情况下不会启用脱机存储。从:

对于web,默认情况下禁用脱机持久性。使能 持久性,调用enablePersistence方法。云商店 会话之间不会自动清除缓存。因此,如果 您的web应用程序处理敏感信息,请确保询问用户 如果他们在启用持久性之前在受信任的设备上

重要提示:对于web,脱机持久性是一种实验性功能 这只有Chrome、Safari和Firefox web支持 浏览器。此外,如果用户打开指向的多个浏览器选项卡 相同的云Firestore数据库,并启用脱机持久性, Cloud Firestore只能在第一个选项卡中正常工作


在启用持久性之前,您看到的是预期的行为。

我通过调用firebase.firestore().enablePersistence()在构造函数中启用了持久性,但数据仍然不会保存在本地,并且在重新加载页面时会被清除。您好@Doug Stevenson,只是一个小更新。如果应用程序处于脱机状态,我可以使用enablePersistence()使其正常工作。我面临的唯一问题是,如果我重新加载页面,它将无法正常工作。但数据确实存储在firebase的indexedDB中。但同步只有在启动另一个操作时才会发生。有人可以建议我在应用程序重新联机时如何同步吗。或者我缺少使其工作的任何配置。提前谢谢。大家好,只是一个小更新。如果应用程序处于脱机状态,我可以使用enablePersistence()使其正常工作。我面临的唯一问题是,如果我重新加载页面,它将无法正常工作。但数据确实存储在firebase的indexedDB中。但同步只有在启动另一个操作时才会发生。有人可以建议我在应用程序重新联机时如何同步吗。或者我缺少使其工作的任何配置。