如果值等于true,Firebase将显示帖子
我正在使用FirebaseRecyclerAdapter,我需要显示post for uses ids equals true,这是我的firebase数据库: { 以下:{ ORBBKfZAAUhqI1h7ojQDzYOjgkp1:{ z2SNUlLd6mQM8nnlkU2VUws5Ggl2:{ UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2 } }, pypD1SYZkbcYesk09WuMUY1AkTf1:{ ORBBKfZAAUhqI1h7ojQDzYOjgkp1:{ UID:ORBBKfZAAUhqI1h7ojQDzYOjgkp1, 用户名:阿里 }, z2SNUlLd6mQM8nnlkU2VUws5Ggl2:{ UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2, 用户名:阿里 } }, z2SNUlLd6mQM8nnlkU2VUws5Ggl2:{ ORBBKfZAAUhqI1h7ojQDzYOjgkp1:正确, pypD1SYZkbcYesk09WuMUY1AkTf1:正确 } }, 职位:{ -KduqnVVczZf5uibQiZ-:{ 描述:gg, 轮廓:https://twitter.com/2Top/profile_image?size=original, 时间:14881230655, UID:PYPD1SYZKBCYESK09WUMY1AKTF1, 用户名:迈克, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped906285501.jpg?alt=media&token=0c1a3a3d-6e48-4c4e-ba59-f5646bf8965f }, -Ke5gJ00CxbjhOuhzLIx:{ 描述:朝觐, 时间:1488318465, UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2, 用户名:迈克, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1717103943.jpg?alt=media&token=a85b2488-5ac7-49a7-9ad0-dbf4e6f29389 }, -KeCuiFmUCpN19zwsTsR:{ 描述:a, 轮廓:https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg, 时间:1488439652, UID:ORBBKfZAAUhqI1h7ojQDzYOjgkp1, 用户名:2top, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1913886685.jpg?alt=media&token=c8ad26b2-8f09-453b-b48a-aad9e4d8b5c3 }, -KeD2fBUQ09HVMrvAneb:{ 描述:ee, 轮廓:https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg, 时间:1488441999, UID:ORBBKfZAAUhqI1h7ojQDzYOjgkp1, 用户名:2to7p, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1904338270.jpg?alt=media&token=d200b7fc-15e7-4dc4-9913-59c377929e9e }, -KeDfnMWiB7k_4J3FBgZ:{ 描述:f12g, 轮廓:https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg, 时间:1488452517, UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2, 用户名:2top, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1872832638.jpg?alt=media&token=80239844-a872-47e2-9689-92d368dd9452 }, -KeDfrw4inUQFtIDXJHp:{ 描述:fg, 轮廓:https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg, 时间:1488452536, UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2, 用户名:2top, 壁纸:https://firebasestorage.googleapis.com/v0/b/test-3f4c5.appspot.com/o/Posts%2Fcropped1872832638.jpg?alt=media&token=80239844-a872-47e2-9689-92d368dd9452 } }, 用户:{ 1 DUK1PHEEOAIMX8IOOSPEMEWCPM2:{ 用户名:汤姆 }, BOWNDGAERXIBNVJ7IJY1EKFIDC3:{ 用户名:7uthaifah }, ECWHIksxJ0Q5SUlIrev4BjnjmrJ3:{ 轮廓:https://lh3.googleusercontent.com/-p1mB5WbUN2s/AAAAAAAAAAI/AAAAAAAAAAo/r3Z4o-VSODQ/s200-c/photo.jpg, 用户名:Jice }, I5o3JMpYHwZXQD0t2ogWHCQbrZv1:{ 轮廓:https://lh3.googleusercontent.com/-p1mB5WbUN2s/AAAAAAAAAAI/AAAAAAAAAAo/r3Z4o-VSODQ/s200-c/photo.jpg, 用户名:迈克 }, ORBBKfZAAUhqI1h7ojQDzYOjgkp1:{ 封面:http://lucascontabil.com/home/wp-content/uploads/2015/05/city-wallpaper-7-400x200.jpg, 轮廓:https://lh5.googleusercontent.com/-IAMp28UlmE/AAAAAAAAAAI/AAAAAAAAAAA/AAomvV2EM8Ut2nW9j0YE2vRZhJyQBHMsrA/s200-c/photo.jpg, UID:ORBBKfZAAUhqI1h7ojQDzYOjgkp1, 用户名:Dom }, ZxqBgLq4ekUJii05AvV86z0i3mH2:{ 轮廓:https://lh3.googleusercontent.com/-p1mB5WbUN2s/AAAAAAAAAAI/AAAAAAAAAAo/r3Z4o-VSODQ/s200-c/photo.jpg, 用户名:Jone }, mZ5jjPNLlcc8OguVzWJLAYhavmg1:{ 轮廓:https://twitter.com/2Top/profile_image?size=original, 用户名:Twitter }, pypD1SYZkbcYesk09WuMUY1AkTf1:{ 轮廓:https://lh3.googleusercontent.com/-p1mB5WbUN2s/AAAAAAAAAAI/AAAAAAAAAAo/r3Z4o-VSODQ/s200-c/photo.jpg, 用户名:迈克 }, z2SNUlLd6mQM8nnlkU2VUws5Ggl2:{ 封面:http://lucascontabil.com/home/wp-content/uploads/2015/05/city-wallpaper-7-400x200.jpg, 电邮:@dd, 轮廓:https://lh4.googleusercontent.com/-suB77riNoX8/AAAAAAAAAAI/AAAAAAAAAAA/ADPlhfKMzINn-Ki538Sqf6SRGaXC81-WuQ/s200-c/photo.jpg, UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2, 用户名:2 277顶 } }如果值等于true,Firebase将显示帖子,firebase,firebase-realtime-database,android-recyclerview,firebase-storage,Firebase,Firebase Realtime Database,Android Recyclerview,Firebase Storage,我正在使用FirebaseRecyclerAdapter,我需要显示post for uses ids equals true,这是我的firebase数据库: { 以下:{ ORBBKfZAAUhqI1h7ojQDzYOjgkp1:{ z2SNUlLd6mQM8nnlkU2VUws5Ggl2:{ UID:z2SNUlLd6mQM8nnlkU2VUws5Ggl2 } }, pypD1SYZkbcYesk09WuMUY1AkTf1:{ ORBBKfZAAUhqI1h7ojQDzYOjgkp1:{
} 你可以通过使用普通的回收适配器来实现你想要的。使用当前的数据库设计,您将无法将所需内容转换为单个firebase查询,因此FirebaseRecyclerAdapter已过时
mDatabaseFriends.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot following : dataSnapshot.getChildren()) {
mDatabase.orderByChild("UID").equalTo(following.getKey()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Getting_Posts model = dataSnapshot.getValue(Getting_Posts.class);
// Here you can add your 'post' to a dataset that you can use to initialize a new RecyclerAdapter
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
另一种选择是简单地更改数据库设计,以允许使用FirebaseRecyclerAdapter或FirebaseIndexRecyclerAdapter,后者更可能使用。我认为您需要使用客户端扇出来实现这一点
这些链接应该与您试图实现的目标相关
编辑:添加了特定于此情况的代码
已经有一段时间了,我现在无法测试代码,但是请告诉我这是否对您有效
首先是适配器
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.PostViewHolder> {
private ArrayList<Getting_Posts> mdataSet;
public RecyclerAdapter(ArrayList<Getting_Posts> dataSet) {
mdataSet = dataSet;
}
@Override
public RecyclerAdapter.PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflatedView = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_card_design, parent, false);
return new PostViewHolder(inflatedView);
}
@Override
public void onBindViewHolder(RecyclerAdapter.PostViewHolder holder, int position) {
Gettings_Posts post = mdataSet.get(position);
// Set the properties of the holder
// I don't know what properties you used in the viewholder so I'll just give an example
// example: holder.Name.setText(post.getName());
}
@Override
public int getItemCount() {
return mdataSet.size();
}
public void add(int position, Getting_Posts post) {
mdataset.add(position, post);
notifyItemInserted(position);
}
}
然后添加我的原始解决方案,只需替换以下行
Getting_Posts model = dataSnapshot.getValue(Getting_Posts.class);
用这个
mAdapter.add(mAdapter.mdataSet.size(), dataSnapshot.getValue(Getting_Posts.class));
mAdapter.notifyDataSetChanged();
就像我说的,我没有时间测试它,所以可能会有一些错误,但我想给你一些东西来处理。您应该能够在RecyclerView和RecyclerAdapter online上找到大量文档,以帮助您解决此问题。您的问题中包含了JSON树的图片。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出JSON链接轻松获得该文本。将JSON作为文本使其具有可搜索性,允许我们轻松使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。我更新了问题,现在检查它。是的,每次您使用=new FirebaseRecyclerAdapter时,它基本上会销毁旧的问题,并用新的问题替换它。我认为,在这种情况下,你应该使用普通的RecyclerAdapter,而不是FirebaseRecyclerAdapter。请记住,我是编程新手,所以你能给我一个完美的解决方案吗?好的,给我几分钟。这个方法对我有效,但它只显示1个uid,如果post uid等于下面的第一个用户uid show post,所以它只适用于第一个UID你能发布屏幕截图吗?这对我来说很好。首先,谢谢你的时间,我了解了所有的方法,我会在以后把它们添加到应用程序中,但是有没有一种更快的方法来做到这一点,而不是添加新的回收器和浪费时间。。。我认为有一个查询我可以使用它,如果没有办法,那么我将添加您的方法,并再次感谢您在您的时间里为我提供的帮助。您可能可以使用FirebaseIndexRecyclerView进行此操作,但您必须重新设计您的数据库。你应该试着阅读我添加的链接。另外,看看Firefeed。这是一个用Firebase构建的twitter克隆,它还具有以下功能。然后我会使用你的方法,我认为他们会更好地帮助我。
Getting_Posts model = dataSnapshot.getValue(Getting_Posts.class);
mAdapter.add(mAdapter.mdataSet.size(), dataSnapshot.getValue(Getting_Posts.class));
mAdapter.notifyDataSetChanged();