无法创建 Firebase 数据结构

Trouble creating firebase data structure

对于我的 Firebase 数据结构,我希望它处理如下内容:

用户可以创建一种记录想法的方法。他们可以随心所欲地称呼它。 Mary Chen传参journalMr Owner要命名(传参)log。 Firebase 将这些保存为自己的树,将其命名为用户要求命名的任何参数。

然后出现另一棵树:whenLoggedIn + \(parameter)。此树将 yyyy-mm-dd 日期保存到相应的 post。

示例:

{
    "uids": {
        "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": {
            "friends": {
                "IbTuUfmIeO0KOBr5Q4gAqD": true
            },
            "name": "Mary Chen",
            "journal": {
                "entry 1- trader joes": "went to store! :)",
                "entry 2- ate sushi": "took out the garbage today then got free sushi from trader joes!!!"
            },
            "whenLoggedInJournal": {
                "1": "1997-12-25",
                "2": "2016-2-23"
            }
        },
        "L8kBHaGBr5Q4gAqDOhFY29Okepm1": {
            "friends": {
                "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": true
            },
            "name": "Mr Owner",
            "journal": {
                "log 1": "spotted some drunkard in my store",
                "log 2": "drainage pipe clogged with tomatos, I suspect the drunkard",
                "log 3": "did inventory check, 1 less sushi box, suspect the drunkard"
            },
            "whenLoggedInLog": {
                "1": "1997-12-25",
                "2": "2016-2-27",
                "3": "2016-4-2"
            }
        }
    }
}

我通读了 "Structuring data" 的 Firebase 指南,但我没有掌握如何一次添加树。我也想实现一个扁平化的数据集;这对我正在做的事情有必要吗?

推荐的 Firebase 数据结构是将每个实体拉到它自己的顶级节点。因此,在您的情况下,这将导致:

{
    "userNames": {
        "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": "Mary Chen",
        "L8kBHaGBr5Q4gAqDOhFY29Okepm1": "Mr Owner"
    },
    "userFriends": {
        "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": {
            "IbTuUfmIeO0KOBr5Q4gAqD": true
        },
        "L8kBHaGBr5Q4gAqDOhFY29Okepm1": {
            "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": true
        }
    },
    "userJournals": {
        "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": {
            "entry 1- trader joes": "went to store! :)",
            "entry 2- ate sushi": "took out the garbage today then got free sushi from trader joes!!!"
        },
        "L8kBHaGBr5Q4gAqDOhFY29Okepm1": {
            "log 1": "spotted some drunkard in my store",
            "log 2": "drainage pipe clogged with tomatos, I suspect the drunkard",
            "log 3": "did inventory check, 1 less sushi box, suspect the drunkard"
        }
    },
    "whenLoggedInJournals": {
        "D0Ez8edYhIbTuUfmIeO0KOq5xVB3": {
            "1": "1997-12-25",
            "2": "2016-2-23"
        },
        "L8kBHaGBr5Q4gAqDOhFY29Okepm1": {
            "1": "1997-12-25",
            "2": "2016-2-27",
            "3": "2016-4-2"
        }
    }
}

这个结构:

  • 可以更轻松地加载部分用户数据,例如只是名字
  • 更容易保护数据,例如使用户名 public、他们的好友列表可供他们自己和他们的朋友查看,并且日志和登录数据仅供他们自己查看