2017-03-09 192 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