0

我正在研究一种解决方案,以拦截来自我们的 node.js 服务器的数据更改,并在它们存储/同步到其他客户端之前验证/更改它们。

有关如何使用当前代码库解决此问题的任何策略或建议?

目前,似乎唯一的选择是在同步操作后重写它。这意味着每个客户端可能会收到同步(包括服务器),然后服务器将重写数据并触发第二次同步。

为了帮助理解问题的背景,这似乎是满足我需求的理想策略:

  • 服务器获得客户端不可用的特殊令牌/密钥(当安全出现时)
  • 服务器注册一个依赖注入,如firebase.child('widgets').beforeSync(myCallback)
  • 客户端同步数据
  • 通知服务器回调
  • 服务器修改或验证数据
  • 如果有效,它会将其返回到 firebase 以进行同步操作
  • 如果无效,则中止同步并返回给客户端的错误
4

1 回答 1

1

感谢您分享您的想法!

我们已经考虑过这种方法。您实际上可以通过构造数据来模拟这种行为,以便有一个“未验证”树和一个“验证”树。

“未验证”树将可由客户端写入,服务器将监视它的更改。当发生更改时,它将验证数据,如果通过,它将复制到“已验证”树中,该树只能由服务器写入。当验证失败时,您也可以通过 Firebase 数据将错误传递回客户端。

可以将此行为打包到提供您描述的行为的库中。我们也可以将其添加为核心功能,但我们仍在研究各种选项。

于 2012-06-25T18:25:29.290 回答