所以我使用Parse.com AfterSave云代码功能来保存与特定位置相关的最新帖子列表。这样做的原因是获取位置的最新帖子,而无需搜索和订购所有位置的整个帖子列表。
这在Parse AfterSave中做得很好,因为我不必担心客户端会执行此命令,因此它在云中运行是有意义的。现在该解析正在关闭,我已决定迁移到Firebase。 Firebase中是否存在等效功能,或者我的客户是否需要维护最新帖子列表?
由于
答案 0 :(得分:2)
目前无法在Firebase的服务器上运行您的代码。因此,您必须提供一种不太直接的Cloud Code映射到新解决方案。在每个客户端上运行该功能是一种选择,在廉价的“机器人”/服务器上运行它是另一种选择。
我会在之前找到一些问题并将其链接到这里:
要记住的一件事是,运行这样的服务器不是您正在考虑的“编写服务器”的类型。其中大多数更像是一个“机器人”,它与Firebase的交互方式与客户端代码相同。在这种情况下,唯一的区别是它在您控制的环境中运行,因此它可以使用提升的凭据运行。
答案 1 :(得分:1)
一些想法;其中一个你已经提到过“不”,但是想把它包括在内以便完整:
all_messages
message_0
message: blah blah
timestamp: the timestamp
message_1
message: blah blah
timestamp: the timestamp
message_2
message: blah blah
timestamp: the timestamp
如果所有客户端都在观察all_messages节点,则每次添加新消息时,都会通知客户端,并且可以按时间戳查询最后三条消息。非常简单的解决方案。
另一个想法是让一个节点只保留对最后三条消息的引用,减少开销和排序。
all_messages
message_45
message: blah blah
message_50
message: blah blah
message_51
message: blah blah
last_three_messages
last_message_0: message_45
last_message_1: message_50
last_message_2: message_51
当客户端将消息写入all_messages节点时,在last_three_messages节点中写入对它的引用,并将旧消息随机播放。
有了这个,客户端可以只观察last_three_messages节点。
需要一个小客户端逻辑来处理将最新消息推送到last_message_0插槽然后将另一个消息混乱,但它只需要几行代码而且开销最小。