我需要在数据库结构之后存储值列表。还要如何获取特定帖子(“第一”)值的列表。
"userviews" :{
"first":{
1:
"userEmail":"abc@gmail.com",
2:
"userEmail":"xyz@gmail.com"
},
"second":{
1:
"userEmail":"abc@gmail.com",
2:
"userEmail":"xyz@gmail.com"
}
}
我正在开发类似于博客应用程序。这里“userviews”是数据库的根。“first”和“second”是帖子标题。如果用户看到帖子“first”,他们的邮件已被发送到Firebase数据库中的“第一个”列表。
我尝试了以下解决方案,但我没有得到正确的格式
String userEmail = "abc@gmail.com";
ViewedUsers viewedUsers = new ViewedUsers();
viewedUsers.setUserEmail(userEmail);
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("userviews").child("first").setValue(viewedUsers);
如果我这样做,我会得到以下格式。
"userviews" :{
"first":{
"userEmail":"abc@gmail.com"
}
}
模型类:ViewedUser
public class ViewedUsers {
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
String userEmail;
}
答案 0 :(得分:0)
<强>更新强>
"userviews" :{
"first":{
0:"abc@gmail.com",
1:"xyz@gmail.com"
},
"second":{
0:"abc@gmail.com",
1:"xyz@gmail.com"
}
}
<强> OLD 强>
根据我的知识和经验,如果我没有错,Firebase完全依赖于键值参数。如果我错了,请告诉我。
如果您不想在数据库中使用密钥,那么您可以做的是在密钥中转换您的值。像这样:
"userviews" :{
"first":{
"abc@gmail.com":0
"xyz@gmail.com":0
},
"second":{
"abc@gmail.com":0
"xyz@gmail.com":0
}
}
这样,您的值就会成为您的密钥,您可以在检索值时轻松检索它。
您也可以将其另存为数组。正如@Simon B所建议的