我正在尝试在firebase中创建对数据库的自动编辑。有没有办法在服务器端执行此操作?我是iOS开发和swift的新手,所以任何帮助都会非常感激。
另外,我尝试过Zapier,但服务不够具体,不能满足我的需求。
答案 0 :(得分:4)
是的 - Firebase有一套非常灵活的服务器端更新选项,它非常简单,可以安排cronjob连接到firebase并执行一些预定的更新或编辑。 最通用的方法是使用REST API来执行更新,尽管有特定的库来支持Node和其他平台。 值得注意的是最近对Firebase版本3进行了重大升级,引入了一些重大变化 - 可以很容易地将旧版本的示例与新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或Google Apps。有关如何处理此问题的一些建议,请参阅Firebase push notifications - node worker。 当asked Google建议他们没有建议最佳托管工作服务的位置时,他们确实提到了Google App Engine和Heroku。
如果您不想实现和托管观察者/工作进程,另一种方法是在客户端中包含一些代码,用于定期检查和删除陈旧数据。
firebase Queue非常酷,但对于简单过期陈旧数据可能有点过分。