使用Firebase的用户数据结构

时间:2014-05-20 06:46:21

标签: javascript angularjs firebase

我多次问过,没有人给我正确答案。那么在Firebase中,这是正确的数据结构吗?

{
  "users" : {
    "-JNNJ-0ErS6kX5AFkfM3" : {
      "userUid" : "simplelogin:66",
      "userId" : "66",
      "email" : "fd2@sdsa.cz"
    }
   "accounts" : {
    "-JLXe5iaH-TLSBu0RJqp" : {
      "currency" : "-JLXe--zoxk1DdKa9mAT",
      "description" : "account1",
      "name" : "account1"
    },
    "-JNJdqZouwAfEzmCSHTO" : {
      "description" : "asdasd",
      "name" : "dsad"
    },
    "-JLgcjINbZni6luTuPSY" : {
      "currency" : "-JLXe--zoxk1DdKa9mAT",
      "description" : "fefef",
      "name" : "bkkjsdds"
    }
  },
  "categories" : {
    "-JLgd4W8COP6zOlhNdq9" : {
      "color" : "#c55353",
      "account" : "-JLXe5iaH-TLSBu0RJqp",
      "description" : "fds",
      "name" : "dsfdsfds"
    }
  },
  "records" : {
    "-JNNK2hnJ99dZqRmfsjs" : {
      "date" : "2005-09-28T10:48",
      "amount" : 123,
      "description" : "description",
      "category" : "-JLgd4W8COP6zOlhNdq9"
    }
  }
  },
}

如果难以阅读,则有解释。

我有一个有密钥的用户。用户拥有帐户>每个帐户都有类别(每个类别都有一个帐户中的密钥)>每个类别都有记录(每个记录都有一个类别的密钥。

例如,一条记录(我正在描述参数):

记录的关键:-JNNK2hnJ99dZqRmfsjs 记录属于具有键的类别:-JLgd4W8COP6zOlhNdq9

来自Firebase的人不幸没有帮助我,我也不理解他们的单一教程。

这是正确的方法吗?我只想为每个用户提供数据(其他人无法看到其他用户的数据)。

编辑:

这是对的吗?我知道那个帖子。但我仍然不理解它。

在现实世界中这是正确的方式吗?

users
  -JNNK2hnJ99dZqRmfsjs   (key of user1 for example)
    name
    id
    etc
accounts
  -JLgd4W8COP6zOlhNdq9 (key of some account)
    name
    description
    -KFTf6W8COP6zOlhNdq9 (key of user - account belongs to user and account has users reference - the key)

这是对的吗?

EDIT2:

看看这个: awesome.firebaseio-demo.com

Anant有一棵美丽的树:

users
  user1
    name
  user2
    name

他是怎么做到的?我以为我只能用钥匙工作。

1 个答案:

答案 0 :(得分:1)

Firebase博客文章 - Denormalizing Your Data is Normal可帮助您获得正确的数据结构。

第二个问题(“其他人无法看到其他用户的数据)是关于security rules - 您必须确定谁可以读取数据。