我是 PWA 新手,一直在使用 firebase 控制台数据库测试我的 PWA 项目。离线时,indexedDB
当我提交我的帖子数据时,我有代码保存我的帖子数据,以便稍后在有 WiFi(在线)时保存。它确实在找不到 WiFi 时保存了数据indexedDB
,但是当我打开 WiFi 时,它不会实时发布我的数据。当我在wifi开启(在线)时提交新的帖子数据时,后台同步代码会indexedDB
实时发布保存的数据和新的帖子数据。但我希望我的后台同步代码在打开 WiFi 时自动发布(离线后)。
这是我用于后台同步的服务人员代码:
self.addEventListener('sync', function(event) {
console.log('Background syncing...', event);
if (event.tag === 'sync-new-posts') {
console.log('Syncing new Posts...');
event.waitUntil(
readAllData('sync-posts') // function to read all saved data which had been saved when offline
.then(function(data) {
for (var dt of data) {
fetch('xxx some firebase post url xxx', { // fetching for sending saved data to firebase database
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
id: dt.id,
title: dt.title,
content: dt.content
})
})
.then(function(res) {
console.log('Sent data', res);
if (res.ok) {
res.json()
.then(function (resData) {
deleteItemFromData('sync-posts', resData .id); // function for deleting saved post data from indexedDB as we donot need after realtime post is saved when online.
});
}
})
.catch(function(err) {
console.log('Error while sending data', err);
});
}
})
);
}
});
我不知道出了什么问题。如果有人需要我的发布代码或服务人员代码的更多代码以更清楚,请询问。请帮我解决这个问题,因为我陷入了困境。