通过Firebase建立关系数据结构

时间:2016-12-09 09:10:22

标签: android firebase firebase-realtime-database nosql

我是noSQL和Firebase的新手。但我想通过Firebase构建我的数据库结构。

我有用户和用户列表。结构与关系。 所以我做了in the example:

 String key = mDatabase.child("lots").push().getKey();
    //create new lot
    Lot lot = new Lot(fbUser.getUid(), fbUser.getEmail(),  mMessage.getText().toString());
    //turn to map
    Map<String, Object> lotValues = lot.toMap();
    Map<String, Object> childUpdates = new HashMap<>();
    childUpdates.put("/lots/" + key, lotValues);
    childUpdates.put("/user-lots/" + fbUser.getUid() + "/" + key, lotValues);
    mDatabase.updateChildren(childUpdates);

但在结果中我将这些数据复制:

this

获得此structure可能会更好。我试图找到一个如何构建一个的例子,因为我不想重新发明一个轮子,但到目前为止我的努力是徒劳的。

有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

你要找的是Pointers,Firebase信不信由你,没有

例如,如果您想要3个数据列表:

  1. 我的帖子
  2. 最近的帖子
  3. 然后你必须这样做:

    databaseRoot:{
      Posts:{
         {UNQ_KEY}:
          {
            title: "x",
            description: "y",
            authorUserID: {USERID1}
          }
       }
    
      Users:{
        {USERID1}
          Posts:{
            {UNQ_KEY_2}: {
             title: "x",
             description: "y"
            }
          }
       }
    }
    

    创建UNQ_KEY后,您还可以在用户的​​userID下创建UNQ_KEY_2

    要显示“我的帖子”,您会看到{USERID1}下的列表。要获得“最近发布的帖子”,您必须转到Posts节点。