Firebase - 结构数据

Firebase - Struct data

想法

我正在使用 Firebase,它有我的后端数据存储,我有这样的用户列表

{
    "id" : 1,
    "member_number" : 1,
    "name": "b",
    "phone": "d",
    "email": "f",
    "picture" : "",
    "gender" : "male",
    "birthdate" : "21-05-1986",
    "address" : "",
    "postal_code" : {"prefix":"4750","suffix":"248"},
    "updated_on" : "1235648",
    "inserted_on" : "2014", 
    "visible" : true,
    "verified" : false
   }

我有一个这样的年桶列表,其中关键是桶年

"buckets" : {
  "2014" : {},
  "2015" : {}
}

我的目标是,当我插入一个新用户时,将该用户分配给年份桶。因此,如果我在 2014 年添加一个用户,该用户将转到 2014 年的存储桶,如果我在 2015 年添加一个用户,该用户将转到 2015 年的存储桶,依此类推。

我如何使用 firebase 做到这一点?或者我如何构建我的数据?

在用户列表中,我会将 ID 作为键。然后在每年的存储桶中,我只存储一个用户 ID 列表。因此,如果您想查看 2014 年所有用户的列表,您可以检索用户 ID 的列表,然后按 ID 查找每个用户。

要存储新用户,您可以这样做:

var currentyear = "2015";

var newUser = {
    "id" : 1,
    "member_number" : 1,
    "name": "b",
    "phone": "d",
    "email": "f",
    "picture" : "",
    "gender" : "male",
    "birthdate" : "21-05-1986",
    "address" : "",
    "postal_code" : {"prefix":"4750","suffix":"248"},
    "updated_on" : "1235648",
    "inserted_on" : currentyear, 
    "visible" : true,
    "verified" : false
   };

var userList = new Firebase('https://foo.firebase.url//userList');
var userRef = userList.child(newUser.id);
userRef.set(newUser);

var bucketRef = new Firebase('https://foo.firebase.url//bucketList//' + currentyear);
bucketRef.push({"id": newUser.id});

这样可以很方便的访问和更新一个用户的数据,也可以很方便的得到一个按年份划分的用户列表。