"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 下的某些内容发生变化时,获取新数据,并将其写入数据库中应该复制的其他位置。这消除了所有客户执行相同工作的责任,并允许您加强对重复数据的安全规则。
最近 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 下的某些内容发生变化时,获取新数据,并将其写入数据库中应该复制的其他位置。这消除了所有客户执行相同工作的责任,并允许您加强对重复数据的安全规则。