如何强制更新在Firebase上托管并与FireStore一起使用的无服务器Angular SPA PWA

问题描述 投票:1回答:1

背景:

Angular 8 PWA SPA。使用Firebase身份验证。并且将Firestore作为DB。 (包括离子4)

所有读取和写入等操作都是通过AngularFire npm完成的。

这里到处都有执行业务逻辑的云功能。

所有软件包都是最新的。

场景:

在离线模式下使用打开的PWA版本3.1的移动用户会更新“ SampleDoc”类型的文档,这些文档正在等待同步到Firestore。

用户在周末休眠笔记本电脑。

[周末将发布一个软件更新,该更新将数据库更新为新格式的“ SampleDoc”文档的结构更改。部署了新版本的PWA 4.0。

用户星期一在办公室通过WiFi打开他的笔记本电脑,所做的更改将应用​​于DB破坏数据。

如何预防?

我来自经典的基于Spring Boot的服务器世界。这是我们的处理方式:

发送到服务器的每个HTTP请求都使用标有示例的API版本显示标头ApiVersion:3.1.0

在服务器上,有一个过滤器检查当前版本与传入版本,如果不匹配,则使用Web应用程序知道需要更新自身的HTTP错误代码拒绝该请求。用户通知更改无法应用,并且upp会自行更新。

如果直接与FireStore一起使用无服务器Angular SPA PWA,则无法添加此类过滤器。

在此技术堆栈中解决该问题的正确方法是什么?

其中一个想法是订阅一个保存有当前版本DB / APP的文档,但是有关更新的通知是否会到达[[之前

,AngularFire将尝试应用更改吗? 是否有办法防止这些更改发生?

[背景:Angular 8 PWA SPA。使用Firebase身份验证。并且将Firestore作为DB。 (包括Ionic 4)所有读取和写入等操作都是通过AngularFire npm完成的。这里有云函数...

angular firebase google-cloud-firestore single-page-application progressive-web-apps
1个回答
0
投票
我将在Firestore中执行相同的操作,但是在您写入的数据中包含版本号。因此,在您的文档中,包括版本号字段,然后在数据库的服务器端安全规则中进行检查:
© www.soinside.com 2019 - 2024. All rights reserved.