我正在使用Firebase实时数据库制作一个帖子应用程序。
该应用需要书签功能,但我不知道如何加载已添加书签(已选中)的帖子。
数据库结构:
代码:
databaseReference = databaseReference.child("post").child(getLen()).child("all-posts").child("-KYbMBatKdoWYw45-2pp").child("bookmarkUsers").orderByChild(myUserId).equalTo(myUserId);
但此代码无效。为什么它不起作用?我认为它只返回bookmarkUsers
子节点。
我是否必须仅为书签创建另一个节点?
我已经为节目创建了一个节点,但我无法管理bookmardCount
和starCount
同步。
谢谢!
答案 0 :(得分:1)
DatabaseStorage Posts=FirebaseDatabase.getInstance().getReference().child("posts");
Posts.child("0").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot DS: dataSnapshot)
{
//Get all other Values Except bookmarkusers and store them
String POST_NAME = dataSnapshot.getKey();
Posts.child("0").child(POST_NAME)addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshotf) {
for(DataSnapshot BOOK: dataSnapshotf)
{
//Collect all BookMarks and store them
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:0)
我是否必须仅为书签创建另一个节点?
是的,你这样做。要获取更多信息,请阅读有关在firebase here中构建数据的信息。
我已经为节目创建了一个节点,但我无法管理bookmardCount和starCount同步。
您需要将bookmarkCount
和starCount
保留在帖子节点本身内。