Firebase AfterSave功能就像Parse.com一样

时间:2016-02-12 22:22:57

标签: parse-platform firebase angularfire cloud-code

所以我使用Parse.com AfterSave云代码功能来保存与特定位置相关的最新帖子列表。这样做的原因是获取位置的最新帖子,而无需搜索和订购所有位置的整个帖子列表。

这在Parse AfterSave中做得很好,因为我不必担心客户端会执行此命令,因此它在云中运行是有意义的。现在该解析正在关闭,我已决定迁移到Firebase。 Firebase中是否存在等效功能,或者我的客户是否需要维护最新帖子列表?

由于

原始问题重新解析Get latest record per field in Parse.com JS query

2 个答案:

答案 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插槽然后将另一个消息混乱,但它只需要几行代码而且开销最小。

相关问题