说我有一个与Firebase链接的博客应用程序。当我发帖时,我希望它能同时发布到公共提要和我的个人资料。我该如何处理在两个不同的地方保存相同的帖子?我应该制作帖子节点的两个副本,还是应该创建一个节点并在我的个人资料中保存对它的引用?
答案 0 :(得分:1)
由于我不知道您使用的语言,我将使用javascript制作此示例。
您想要做的事情称为“多地点更新”。您可以阅读multi location updates here。
const postKey = ref.push().key
const postObject = {
title : "Hello",
body: "Body here"
}
const updates = {
`posts/${postKey}`:postObject,
`users/${userId}/posts/${postKey}`: postObject
}
ref.update(updates)
答案 1 :(得分:0)
如果需要,您可以在向Firebase数据库添加数据时在两个不同的DatabaseReference
上使用相同的对象。
usersRef.child(uid).child("posts").setValue(postObject);
和
postsRef.child(postId).setValue(postObject);
另一种方法是建立一个如下所示的数据库:
Firebase-root
|
---- users
| |
| ---- uid1
| |
| ---- posts
| |
| ---- postId1: true
| |
| ---- postId2: true
|
---- post
|
---- postId1
| |
---- Post 1 Object
|
---- postId2
|
---- Post 2 Object
希望它有所帮助。