Parse platform Firebase AfterSave函数,如Parse.com

Parse platform Firebase AfterSave函数,如Parse.com,parse-platform,firebase,angularfire,parse-cloud-code,Parse Platform,Firebase,Angularfire,Parse Cloud Code,因此,我使用Parse.com AfterSave cloud code函数来保存与特定位置相关的最新帖子列表。这样做的原因是为了获取某个位置的最新帖子,而不必搜索和排序所有位置的整个帖子列表 这在Parse AfterSave中做得很好,因为我不必担心客户端执行这个命令,它在云中运行是有意义的。既然parse已经关闭,我决定迁移到Firebase。Firebase中是否有类似的功能,或者我的客户是否需要维护最新帖子的列表 谢谢 原始问题重新解析目前无法在Firebase服务器上运行代码。因此,

因此,我使用Parse.com AfterSave cloud code函数来保存与特定位置相关的最新帖子列表。这样做的原因是为了获取某个位置的最新帖子,而不必搜索和排序所有位置的整个帖子列表

这在Parse AfterSave中做得很好,因为我不必担心客户端执行这个命令,它在云中运行是有意义的。既然parse已经关闭,我决定迁移到Firebase。Firebase中是否有类似的功能,或者我的客户是否需要维护最新帖子的列表

谢谢


原始问题重新解析

目前无法在Firebase服务器上运行代码。因此,您必须提出一种云代码到新解决方案的不那么直接的映射。在每个客户机上运行该功能是一种选择,在廉价的“bot”/服务器上运行该功能是另一种选择

我会找到一些以前讨论过的问题,并将它们链接到此处:

  • (最近的问题涉及使用nodejs服务器)
  • (这又引出了四个问题)

需要记住的一点是,运行这样的服务器并不是您立即想到的“编写服务器”类型。其中大多数的行为更像一个“机器人”,它与Firebase的交互方式与客户端代码相同。这种情况下唯一的区别是它在您控制的环境中运行,因此它可以使用提升的凭据运行;其中一项您已经提到为“否”,但为了完整起见,希望将其包括在内:

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节点中写入对该消息的引用,并将旧消息向下移动

这样,客户端就可以只观察最后三条消息节点


需要一点客户端逻辑来处理将最新消息推到最后一个消息槽上,然后将另一个消息槽向下移动,但只需要几行代码,开销最小。

这基本上是我希望云代码做的,而不是clientFirebase不提供这种服务器端逻辑。然而,它是一个非常低的带宽,最小的代码选项,可以很容易地添加到客户端。