【发布时间】:2016-06-05 03:01:50
【问题描述】:
我正在尝试在 firebase 中创建对数据库的自动编辑。有没有办法在服务器端做到这一点?我是 iOS 开发的新手,而且速度很快,因此我们将不胜感激。
另外,我尝试过 Zapier,但服务不够具体,无法满足我的需求。
【问题讨论】:
标签: ios swift firebase firebase-realtime-database
我正在尝试在 firebase 中创建对数据库的自动编辑。有没有办法在服务器端做到这一点?我是 iOS 开发的新手,而且速度很快,因此我们将不胜感激。
另外,我尝试过 Zapier,但服务不够具体,无法满足我的需求。
【问题讨论】:
标签: ios swift firebase firebase-realtime-database
是的 - Firebase 为服务器端更新提供了一组相当灵活的选项,并且可以很简单地安排一个 cronjob 连接到 firebase 并执行一些预定的更新或编辑。 最通用的方法是使用 REST API 来执行更新,尽管有特定的库支持 Node 和其他平台。 值得一提的是最近对 Firebase 版本 3 的重大升级,它引入了相当多的重大变化 - 很容易将漂浮的旧示例与新 API 混淆,因此在组合第一个 API 时要注意差异概念证明示例。
我假设您希望在自己的服务器上运行,尽管另一种选择是使用容器托管环境(Google Apps 等)。
如果您有自己的服务器并希望进行集成,我建议您从以下内容开始: https://firebase.google.com/docs/server/setup#prerequisites
然后也许快速浏览一下:
https://firebase.googleblog.com/docs/web/quickstart.html
和
https://www.firebase.com/docs/rest/
如果您刚刚开始,我建议您的首要任务是验证、检索和更新 Firebase 记录。 您可以通过 FB 控制台配置服务器身份验证密钥,并将其用作身份验证过程的一部分。
如果您不熟悉 JWT,那么值得花一点时间来加快速度并研究 https://www.firebase.com/docs/rest/guide/user-auth.html 上的示例
进一步的评论: 因此,想到的第一种方法是在您的Cron 中运行某种预定作业,该作业将使用 REST API 连接,对现有数据执行某种查询以识别需要更新和删除或修改的记录他们。
尽管您可以扩展此方法而不必在少于预期的最小删除时间的重复周期内运行,但您可以运行调度程序只是为了在更长的周期内进行清理,但将结果过滤给客户端你不包括过时的数据。这种方法在Firebase chat - removing old messages 有一点讨论
为您的特定场景找到正确的解决方案在很大程度上取决于您的数据结构有多好,这可能是违反直觉的;尤其适用于具有 RDBMS 背景的用户。
可能倾向于保持数据精简且不受旧的不相关数据的污染,但 Firebase 非常擅长管理大型最低限度结构化数据,而且这种膨胀的开销可能没有您想象的那么糟糕。
如果过滤本身还不够,并且您没有可以 CRON 清理进程的服务器,那么您可以在 Node 或类似工具中实现 firebase 工作进程,并在 Heroku 等容器服务上运行它或谷歌应用程序。有关如何解决此问题的一些想法,请参阅Firebase push notifications - node worker。 当asked Google 建议他们没有建议在哪里最好地托管工作服务时,他们确实提到了Google App Engine 和Heroku。
如果您不想实现和托管观察者/工作进程,另一种方法是在客户端中简单地包含一些代码,这些代码会定期检查和删除陈旧的数据。
firebase Queue 非常酷,但对于简单地使陈旧数据过期可能有点矫枉过正。
【讨论】: