我是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);
但在结果中我将这些数据复制:
获得此structure可能会更好。我试图找到一个如何构建一个的例子,因为我不想重新发明一个轮子,但到目前为止我的努力是徒劳的。
有什么建议吗?非常感谢。
答案 0 :(得分:1)
你要找的是Pointers
,Firebase信不信由你,没有。
例如,如果您想要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
节点。