java - 如何在 Firebase 实时数据库查询中获取我所有的朋友和当前用户的帖子?
问题描述
UPDATE1:我仍在研究它,但我无法解决它,也许重组数据库?我会继续思考,但如果有人有想法会很高兴听到
好吧,我正在尝试在 firebase 查询中获取所有当前用户的朋友和他自己的帖子,但我无法获得它们,我总是尝试只获得一个朋友的帖子,因为其他帖子已被覆盖。让我向您展示我的数据库 (JSON) 的结构以及我希望如何在 Android 项目 Activity 中显示帖子。
UserRef = FirebaseDatabase.getInstance().getReference().child("Users");
PostRef = FirebaseDatabase.getInstance().getReference().child("Post");
...
...
UserRef.child(currentUserID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
if(dataSnapshot.exists())
{
if(dataSnapshot.hasChild("Friends")){
for(DataSnapshot ds : dataSnapshot.child("Friends").getChildren()){
friendsID = ds.getKey(); //String with friendsID
DisplayAllUserPosts();
}
}...
...
private void DisplayAllUserPosts() {
Query SortPost = PostRef.orderByChild("uid").equalTo(friendsID);
FirebaseRecyclerOptions<Posts> options=new FirebaseRecyclerOptions.Builder<Posts>().setQuery(SortPost,Posts.class).build(); \\Posts class is just for getting data base Post nodes elements
FirebaseRecyclerAdapter<Posts, PostsViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Posts, PostsViewHolder>(options) {...
我的 Firebase 实时数据库的结构如下:
{
"Post" : {
"10-04-201918:32:09" : {
"counter" : 0,
"date" : "10-04-2019",
"fullname" : "Xuban Illarramendi",
"postimage" : "XXXX",
"profileimage" : "XXXX",
"status" : "",
"time" : "18:32:09",
"uid" : "FP1YJnlJBpfU5aSZlSAErLODWZl2"
},
"10-04-201921:10:06" : {
"counter" : 0,
"date" : "10-04-2019",
"fullname" : "Ander Lopez",
"postimage" : "XXXX",
"profileimage" : "XXXX",
"status" : "",
"time" : "21:10:06",
"uid" : "8wXFsw1pBRYXBVtChqY1Kqi14dy1"
}
},
"Users" : {
"8wXFsw1pBRYXBVtChqY1Kqi14dy1" : {
"Friends" : {
"FP1YJnlJBpfU5aSZlSAErLODWZl2" : {
"date" : "10-04-2019"
},
"sWQGtchFE1fvuSIfPb42ZIWVkbU2" : {
"date" : "10-04-2019"
}
},
"country" : "Spain",
"dob" : "none",
"fullname" : "Ander Lopez",
"gender" : "none",
"profileimage" : "XXXX",
"relationshipstatus" : "none",
"status" : "",
"username" : "anderlopz"
},
"FP1YJnlJBpfU5aSZlSAErLODWZl2" : {
"Friends" : {
"8wXFsw1pBRYXBVtChqY1Kqi14dy1" : {
"date" : "10-04-2019"
},
"sWQGtchFE1fvuSIfPb42ZIWVkbU2" : {
"date" : "10-04-2019"
}
},
"country" : "Spain",
"dob" : "none",
"fullname" : "Xuban Illarramendi",
"gender" : "none",
"profileimage" : "XXXX",
"relationshipstatus" : "none",
"status" : "",
"username" : "xuban"
},
"sWQGtchFE1fvuSIfPb42ZIWVkbU2" : {
"Friends" : {
"8wXFsw1pBRYXBVtChqY1Kqi14dy1" : {
"date" : "10-04-2019"
},
"FP1YJnlJBpfU5aSZlSAErLODWZl2" : {
"date" : "10-04-2019"
}
},
"country" : "Spain",
"dob" : "none",
"fullname" : "Unai Lopez",
"gender" : "none",
"profileimage" : "XXXX",
"relationshipstatus" : "none",
"status" : "",
"username" : "unailopz"
}
}
}
所以我真正的问题是他只显示最后一个朋友的帖子,我怎样才能在不覆盖以前的friendsID的情况下进行包含我所有friendsID的查询?
解决方案
推荐阅读
- reactjs - 同时运行两个 npm 命令
- javascript - 嗨,是否可以使用 javascript/angularjs 和 ionic1 将 Blob/Base64 转换为 fileURI 格式。
- html - 外部 div 不能有自己的高度
- sql - Postgres SQL如何使用group by并排除其中的order by子句
- python-3.x - CodeWars Python 3.6 代码优化:Integers: Recreation One
- java - 如何忽略 mybatis 生成器中的一些表?
- google-app-engine - 使用 Cloud Tasks 和 Cloud Datastore 使用 GAE 和 Python3 进行本地开发
- python-3.x - Python:试图理解这个函数是如何工作的以及它的目的是什么
- java - 存储库接口的 Spring Data MongoDb bean xml 配置
- php - password_verify 返回 false。找不到错误