"Server-side fan-out" 是否可以使用 Cloud Functions for Firebase 进行处理?

Is it possible that "Server-side fan-out" can process with Cloud Functions for Firebase?

最近 Cloud Functions 已在 Firebase 上发布。

我正在通过 Firebase 开发社交网络服务,并使用 "Fan-out" 过程来实现数据一致性,如 here 中所述。

因为"Client-side fan-out"对于大数据来说效率有点低。我们可以使用 Cloud Functions 在服务器端解决这个问题吗?

如果可能的话,你们能给我一个解决方法吗?或者如果有示例代码请参考我。

例如,如果在 posts 节点上插入新数据,我们如何为每个后续用户在 timeline 节点上扇出此数据?

谢谢。

{
    "posts": {
        "-K-zOrtjiCGe7tgRk8DG": {
            "text": "I love emojis!",
            "uid": "user1"
        }
    },
    "timeline": {
        "user2": {
            "-K-zOrtjiCGe7tgRk8DG": {
                "text": "I love emojis!",
                "uid": "user1"
            }
        },
        "user3": {
            "-K-zOrtjiCGe7tgRk8DG": {
                "text": "I love emojis!",
                "uid": "user1"
            }
        }
    },
    "followers": {
        "user1": {
            "user2": true,
            "user3": true
        }
    }
}

您绝对可以使用 Cloud Functions for Firebase 编写 database trigger 来执行此操作。触发器函数可以 运行 每当 /posts 下的某些内容发生变化时,获取新数据,并将其写入数据库中应该复制的其他位置。这消除了所有客户执行相同工作的责任,并允许您加强对重复数据的安全规则。