我正在使用带有离子2的AngularFire2并将数据存储在webSqlStorage中。
当我完成第一个GET时,它会将其保存到存储中。我想要做的是,如果用户有连接,那么检查Firebase中的数据,如果没有更改,则获取本地数据,否则获取更新的数据。
目前,我有一个简单的检查,看看存储是否为空,然后获取本地数据,但这不适用于生产。
let loader = this.loadingCtrl.create({
content: 'Getting Programs...'
});
loader.present().then(() => {
this.storage.get('programs').then((data) => {
if (data != null) {
loader.setContent("Getting Local Data...");
this.programs = data;
} else {
this.yApi.getPrograms().then(data => {
this.programs = data;
this.storage.set('programs', data);
},err => {
// Probaly offline with no local data
console.log("Err is to human");
});
}
}).then(() => {
loader.dismiss();
});
});
只是想知道是否有办法写出像
这样的东西if (data != null || this.af.checkUpdated('/programs')) { ...
或其他什么。
答案 0 :(得分:1)
我在项目中使用了一个额外的数据库值,如program_version。如果firebase program_version大于本地存储,则更新。在每次程序更新时,您的program_version都将增加或设置时间戳。