【问题标题】:How to delete data from Firebase that is older than 6 hours in an iOS app?如何从 iOS 应用中删除超过 6 小时的 Firebase 数据?
【发布时间】:2016-09-15 14:18:51
【问题描述】:

我正在实现一个基于事件的 iOS 应用。这些事件有一个 startTime 和 endTime。用户只能在从 startTime 到 endTime 的这个时间间隔内查看它们。 这就是它的工作原理:用户可以创建一个事件并将其发布到 Firebase 数据库(该事件包含 startTime 和 endTime)。因此,如果当前时间与此间隔匹配,则用户可以看到当前正在发生的事件;但如果 endTime 到达,事件将从数据库中删除,用户无法再访问它。

问题是我对 javascript 以及它如何在带有 Firebase 的 iOS 应用程序上工作一无所知。我认为(通过我的研究)我需要一些东西来检查数据库中的旧事件,但我不知道如何实现它。

此检查如何在带有 Firebase 的 iOS 应用上运行? 如果我不清楚,对不起

【问题讨论】:

    标签: javascript ios database swift firebase


    【解决方案1】:

    接受的答案没问题,但您确实有一个“正确”的选项。

    您可以使用 Google App Engine 并编写一个后端,该后端每隔 X 小时运行一次脚本以清除旧条目(注意时间戳中的 TZ,确保一切一致)。根据您是否觉得将来会有其他处理需求,可能值得走这条路线,否则您可以做的事情相当有限(这一切都需要通过客户端应用程序,并且您具有安全性、可靠性和性能问题可能取决于您的用例)。

    为此,您需要一个完整的 Google App Engine (Google Cloud) 帐户,并且可能需要更高的即用即付定价。

    有关如何处理此问题的详细信息,请参见此处:https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio

    从那里您还可以看到他们为可视化您的客户端应用程序 + firebase + 应用程序引擎如何协同工作而制作的精美设计选项图。 https://cloud.google.com/solutions/mobile/mobile-app-backend-services

    您仍应实现事件的客户端过滤,因为旧事件的清除不会实时完成。

    顺便说一句,Google 刚刚上传了精美的新教程 (codelabs),替换了 firebase 的所有旧文档。所以我怀疑他们很快也会添加一个带有应用引擎集成的代码实验室(我还没有找到)。同时,你可以看到我上面贴的那个,来自google的官方云站。

    祝你好运。

    【讨论】:

    • 嘿克里奥斯!是的,我刚刚注意到 Codelabs 上的所有 Firebase 上传 - 可能是新 Firebase 3.2.0 的一部分。好的建议,确实更合适。我认为快速修复案例将涵盖当前案例而不会造成混淆。无论如何,赞成,因为这是正确的。
    • 谢谢@JulianLee,你真好!
    • 哇,谢谢你的回答。是的,我觉得现在有义务使用服务器端代码,我必须实现它。谢谢你的建议,我会去的。
    • 肯定的,很高兴它有帮助。我认为这对您来说是一个合适的设计选择:cloud.google.com/solutions/mobile/… 您可能希望将其更改为可接受的答案
    【解决方案2】:

    我不得不实现类似的东西。下面详细介绍了如何使用 Firebase 实现这一目标。

    1. Firebase 不提供服务器端逻辑,因此您不能依赖 Firebase 为您删除数据(在事件所有者终止应用、关闭手机等情况下)。

    2. 使用FirebaseServerValue.timestamp 为您的活动提供标准时间值。这将是您允许或拒绝用户查看事件的常量。

    3. 使用if / else 语句仅在startTimeendTime 之间控制事件的可见性(也设置为时间戳)。

    4. 因为您不能使用服务器端逻辑来删除数据,所以您必须使用客户端从 Firebase 中删除数据。使用 #3 中的 if / else 逻辑来确定您当前的时间戳值是否超过了 endTime 时间戳,如果为真,则从 Firebase 中删除该数据。

    希望这会有所帮助。

    【讨论】:

    • 非常感谢您的快速回答!我会试试的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多