所以我使用Parse.com AfterSave Cloud 代码功能来保存与特定位置相关的最新帖子的列表 . 这样做的原因是获取位置的最新帖子,而无需搜索和订购所有位置的完整帖子列表 .
这在Parse AfterSave中做得非常好,因为我不必担心客户端会执行此命令,因此在 Cloud 中运行它是有意义的 . 现在该解析正在关闭,我决定迁移到Firebase . Firebase中是否存在等效功能,或者我的客户是否需要维护最新帖子列表?
谢谢
原始问题重新解析Get latest record per field in Parse.com JS query
目前无法在Firebase的服务器上运行您的代码 . 因此,您必须提供一种不太直接的Cloud Code映射到新解决方案 . 在每个客户端上运行该功能是一种选择,在廉价的“机器人”/服务器上运行它是另一种选择 .
我会在之前找到一些问题,并将它们链接到这里:
Firebase and backend logic(最近涉及使用nodejs服务器的问题)
How would I run server-side code in Firebase?
How do I use Firebase to handle automatic server-side calculations?
Firebase and indexing/search
Server Side Calculation using Firebase(这导致另外四个问题)
要记住的一件事是,运行这样的服务器不是您正在考虑的“编写服务器”的类型 . 其中大多数更像是一个“机器人”,它与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节点中写入对它的引用,并将旧消息向下移动 .
有了这个,客户端可以只观察last_three_messages节点 .
它需要一些客户端逻辑来处理将最新消息推送到last_message_0插槽然后将另一个消息混乱,但它只需要几行代码而且开销最小 .
2 回答
目前无法在Firebase的服务器上运行您的代码 . 因此,您必须提供一种不太直接的Cloud Code映射到新解决方案 . 在每个客户端上运行该功能是一种选择,在廉价的“机器人”/服务器上运行它是另一种选择 .
我会在之前找到一些问题,并将它们链接到这里:
Firebase and backend logic(最近涉及使用nodejs服务器的问题)
How would I run server-side code in Firebase?
How do I use Firebase to handle automatic server-side calculations?
Firebase and indexing/search
Server Side Calculation using Firebase(这导致另外四个问题)
要记住的一件事是,运行这样的服务器不是您正在考虑的“编写服务器”的类型 . 其中大多数更像是一个“机器人”,它与Firebase的交互方式与客户端代码相同 . 在这种情况下唯一的区别是它在您控制的环境上运行,因此它可以使用提升的凭据运行 .
几个想法;其中一个你已经提到过“不”但想要将其包含在内以便完整:
如果所有客户端都在观察all_messages节点,则每次添加新消息时,都会通知客户端,并且可以按时间戳查询最后三条消息 . 很简单的解决方案
另一个想法是让一个节点只保留对最后三条消息的引用,从而减少开销和排序 .
当客户端将消息写入all_messages节点时,在last_three_messages节点中写入对它的引用,并将旧消息向下移动 .
有了这个,客户端可以只观察last_three_messages节点 .
它需要一些客户端逻辑来处理将最新消息推送到last_message_0插槽然后将另一个消息混乱,但它只需要几行代码而且开销最小 .