有没有办法安排对 firebase 数据库的编辑?
Is there a way to schedule edits to firebase database?
我正在尝试在 Firebase 中创建对数据库的自动编辑。有没有办法在服务器端做到这一点?我是 iOS 开发和 swift 的新手,因此非常感谢任何帮助。
此外,我已经尝试过 Zapier,但该服务不够具体,无法满足我的需求。
是 - Firebase 有一组相当灵活的服务器端更新选项,并且很容易安排一个 cronjob 连接到 firebase 并执行一些计划的更新或编辑。
最通用的方法是使用 REST API 来执行更新,尽管有特定的库支持 Node 和其他平台。
值得注意的是最近对 Firebase 版本 3 的重大升级引入了相当多的重大变化 - 很容易将旧示例与新示例 API 混淆,因此请注意差异将您的第一个概念证明示例放在一起。
我假设您正在寻找 运行 在您自己的服务器上,尽管另一种选择是使用容器托管环境(Google 应用程序等)。
如果您拥有自己的服务器并希望进行集成,我建议您从以下开始:
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 工作进程,并启用此 运行ning容器服务,例如 Heroku 或 Google Apps。有关如何处理此问题的一些想法,请参阅 Firebase push notifications - node worker。
当asked Google advised that they didn't advise on where best to host worker services but they did mention both Google App Engine and Heroku.
如果您不想实施和托管 watcher/worker 进程,另一种方法是在客户端中简单地包含一些代码,定期检查和删除陈旧数据。
firebase Queue 非常酷,但对于简单地使陈旧数据过期可能有点矫枉过正。
我正在尝试在 Firebase 中创建对数据库的自动编辑。有没有办法在服务器端做到这一点?我是 iOS 开发和 swift 的新手,因此非常感谢任何帮助。
此外,我已经尝试过 Zapier,但该服务不够具体,无法满足我的需求。
是 - Firebase 有一组相当灵活的服务器端更新选项,并且很容易安排一个 cronjob 连接到 firebase 并执行一些计划的更新或编辑。 最通用的方法是使用 REST API 来执行更新,尽管有特定的库支持 Node 和其他平台。 值得注意的是最近对 Firebase 版本 3 的重大升级引入了相当多的重大变化 - 很容易将旧示例与新示例 API 混淆,因此请注意差异将您的第一个概念证明示例放在一起。
我假设您正在寻找 运行 在您自己的服务器上,尽管另一种选择是使用容器托管环境(Google 应用程序等)。
如果您拥有自己的服务器并希望进行集成,我建议您从以下开始: 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 工作进程,并启用此 运行ning容器服务,例如 Heroku 或 Google Apps。有关如何处理此问题的一些想法,请参阅 Firebase push notifications - node worker。 当asked Google advised that they didn't advise on where best to host worker services but they did mention both Google App Engine and Heroku.
如果您不想实施和托管 watcher/worker 进程,另一种方法是在客户端中简单地包含一些代码,定期检查和删除陈旧数据。
firebase Queue 非常酷,但对于简单地使陈旧数据过期可能有点矫枉过正。