2017-03-09 193 views
0

我使用FirebaseIndexRecyclerAdapter和我'试图证明后为以下用户,所以我用这些方法自爆,但它显示的帖子如果帖子ID可在以下用户:火力地堡显示,如果孩子存在

这里是我的JSON:

"Following" : { 
    "ORBBKfZAAUhqI1h7ojQDzYOjgkp1" : { 
     "pypD1SYZkbcYesk09WuMUY1AkTf1": true, 
     //I need to show this UID posts only but, 
     //When I add here post id it show the post 
     //Ex:"-KduqnVVczZf5uibQiZ-" : true,//Post Shows Up 
    }, 
    "Posts" : { 
    "-KduqnVVczZf5uibQiZ-" : { 
     "Describe" : "gg", 
     "Time" : 14881230655, 
     "UID" : "pypD1SYZkbcYesk09WuMUY1AkTf1", 
     "Username" : "Jone", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped906285501.jpg?alt=media&token=0c1a3a3d-6e48-4c4e-ba59-f5646bf8965f" 
    }, 
    "-Ke5gJ00CxbjhOuhzLIx" : { 
     "Describe" : "hajj", 
     "Time" : 1488318465, 
     "UID" : "pypD1SYZkbcYesk09WuMUY1AkTf1", 
     "Username" : "Dom", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1717103943.jpg?alt=media&token=a85b2488-5ac7-49a7-9ad0-dbf4e6f29389" 
    }, 
    "-KeCuiFmUCpN19zwsTsR" : { 
     "Describe" : "a", 
     "Profile" : "https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg", 
     "Time" : 1488439652, 
     "UID" : "z2SNUlLd6mQM8nnlkU2VUws5Ggl2", 
     "Username" : "Dom", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1913886685.jpg?alt=media&token=c8ad26b2-8f09-453b-b48a-aad9e4d8b5c3" 
    }, 
    "-KeD2fBUQ09HVMrvAneb" : { 
     "Describe" : "ee", 
     "Profile" : "https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg", 
     "Time" : 1488441999, 
     "UID" : "z2SNUlLd6mQM8nnlkU2VUws5Ggl2", 
     "Username" : "Dom", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1904338270.jpg?alt=media&token=d200b7fc-15e7-4dc4-9913-59c377929e9e" 
    }, 
    "-KeDfnMWiB7k_4J3FBgZ" : { 
     "Describe" : "f12g", 
     "Time" : 1488452517, 
     "UID" : "ORBBKfZAAUhqI1h7ojQDzYOjgkp1" 
     "Username" : "Young", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1872832638.jpg?alt=media&token=80239844-a872-47e2-9689-92d368dd9452" 
    }, 
    "-KeDfrw4inUQFtIDXJHp" : { 
     "Describe" : "fg", 
     "Time" : 1488452536, 
     "UID" : "ORBBKfZAAUhqI1h7ojQDzYOjgkp1" 
     "Username" : "Young", 
     "Wallpaper" : "https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1872832638.jpg?alt=media&token=80239844-a872-47e2-9689-92d368dd9452" 
    }, 

    } 
} 

这是我的方法,我用:

mAuth = FirebaseAuth.getInstance(); 
    mCurrentUser = mAuth.getCurrentUser(); 
    mDatabase = FirebaseDatabase.getInstance().getReference().child("Posts"); 
    mDatabaseFriends = FirebaseDatabase.getInstance().getReference().child("Following").child(mCurrentUser.getUid()); 

    FirebaseIndexRecyclerAdapter<Getting_Posts,PostViewHolder> firebaseIndexRecyclerAdapter = new FirebaseIndexRecyclerAdapter<Getting_Posts, PostViewHolder>(
      Getting_Posts.class,R.layout.post_card_design,PostViewHolder.class,mDatabaseFriends,mDatabase) 
    { 
     @Override 
     protected void populateViewHolder(PostViewHolder viewHolder, Getting_Posts model, int position) {}}; 

回答

1

要检查fiven参考让您的孩子在回拨时使用dataSnapshot.exists()dataSnapshot.getChildrenCount() > 0与给定的DataSnapshot

如果你要检索的帖子里面id等于追随者,你应该修改数据库增加一个额外的水平PUR在帖子将已经在一起基于用户ID Posts表:

"Posts": { 
"USER_ID_1": { 
    "post_id_1": { 
    "Describe": "gg", 
    "Time": 14881230655, 
    "UID": "pypD1SYZkbcYesk09WuMUY1AkTf1", 
    "Username": "Jone" 
    }, 
    "post_id_2": { 
    "Describe": "gg", 
    "Time": 14881230655, 
    "UID": "pypD1SYZkbcYesk09WuMUY1AkTf1", 
    "Username": "Jone" 
    } 
}, 
"USER_ID_2": { 
    "post_id_3": { 
    "Describe": "gg", 
    "Time": 14881230655, 
    "UID": "pypD1SYZkbcYesk09WuMUY1AkTf1", 
    "Username": "Jone" 
    }, 
    "post_id_4": { 
    "Describe": "gg", 
    "Time": 14881230655, 
    "UID": "pypD1SYZkbcYesk09WuMUY1AkTf1", 
    "Username": "Jone" 
    } 
} 

迭代希望得到内部每个用户的(只是如果你跟随我后你上攻新的数据模型),你可以检索他们这样做的所有职位:

 List<Getting_Posts> totalPosts = new ArrayList<>(); 
     //Check if the dataSnapshot have childrens 
     if (dataSnapshot.hasChildren()){ 
      //This for iterate for each USER_ID from your database 
      for (DataSnapshot users : dataSnapshot.getChildren()) { 
       //This second iterate for each post for each user 
       for (DataSnapshot posts : users.getChildren()) { 
       totalPosts.add(dataSnapshot.getValue(Getting_Posts.class)); 
       } 
      } 
     } 

     return totalPosts; 

你可以阅读更多安博牛逼这在接下来的文章中或公报文档中: https://www.airpair.com/firebase/posts/structuring-your-firebase-data

https://firebase.google.com/docs/database/web/structure-data?hl=en-419

+0

我知道,但是,你能告诉我解决我的问题,我怎么能查看这篇文章,如果它等于UID的下列用户喜欢在顶部的恩,我需要以示对这个UID的帖子:“pypD1SYZkbcYesk09WuMUY1AkTf1”因为我曾连续3周试图解决这个问题,但我做不到,所以我说,我将有机会问白衣我可以有完美答案 – 7uthaifah

+0

再次检查,我只是修改了我的帖子 –

+0

我知道它的兄弟,但我也需要查看所有帖子的问题。什么是可以用来显示所有帖子的查询。所以你有什么想法一起显示所有帖子。 – 7uthaifah