我正在实施基于事件的iOS应用。这些事件具有startTime和endTime。用户只能从startTime到endTime以此间隔查看它们。 它是如何工作的:用户可以创建一个事件并将其发布到Firebase数据库(该事件包含startTime和endTime)。因此,如果当前时间与此间隔匹配,则用户可以看到正在进行的当前事件;但是如果endTime到达,则事件将从数据库中删除,用户无法再访问它。
事情是我对javascript一无所知,以及它如何在使用Firebase的iOS应用程序上运行。我认为(通过我的研究)我需要检查数据库中的旧事件,我不知道如何实现它。
此检查如何在使用Firebase的iOS应用中运行? 如果我不清楚,我很抱歉
答案 0 :(得分:3)
接受的答案还可以,但你确实有一个“正确”的选择。
您可以使用Google App Engine并编写运行脚本的后端,每隔X小时说清除旧条目(在时间戳中注意TZ,确保一切都一致)。根据您是否认为将来会有其他处理需求,可能值得走这条路线,否则您对自己可以做的事情很有限(它都需要通过客户端应用程序,并且您具有安全性,可靠性和性能问题可能取决于您的使用案例。)
为此,您需要一个完整的Google App Engine(Google Cloud)帐户,并且可能需要更高的按使用付费定价。
有关详细方法,请参阅此处:https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio
从那里你还可以看到他们为了可视化你的客户端应用程序+ firebase + app引擎如何协同工作所做的漂亮的设计选项图。 https://cloud.google.com/solutions/mobile/mobile-app-backend-services
您仍然应该实现客户端事件过滤,因为旧事件的清除不会实时完成。
顺便说一下BTW谷歌刚刚上传了花哨的新教程(codelabs),取代了所有firebase的旧文档。所以我怀疑他们很快就会添加一个带有app引擎集成的codelab(我还找不到一个)。在此期间,您可以看到我上面粘贴的那个,它来自谷歌的官方云站点。
祝你好运。
答案 1 :(得分:1)
我必须实现类似的东西。以下是使用Firebase实现此目标的详细信息。
Firebase不提供服务器端逻辑,因此您无法依靠Firebase为您删除数据(如果事件所有者终止应用,关闭手机等)。
< / LI>使用FirebaseServerValue.timestamp
为您的活动提供标准时间价值。这将是允许或拒绝用户查看事件的常量。
使用if / else
语句仅在startTime
和endTime
之间控制事件的可见性(也设置为时间戳)。
由于您无法使用服务器端逻辑删除数据,因此您必须使用客户端从Firebase中删除数据。使用#3中的if / else
逻辑确定您当前的时间戳值是否超过endTime
时间戳,如果为true,则从Firebase中删除该数据。
希望这有帮助。