我正在尝试创建一个在Firebase上存储条目的应用程序。每个条目都有一个作者字段来指定编写者。但是,每个帖子(不论作者)都会被推送到一个共同的父母。有没有办法迭代这个父项下的每个条目并查找给定作者的所有帖子?
答案 0 :(得分:1)
您可以使用Firebase
Query
。基本上,您不是下载所有数据库并自行过滤,而是在FirebaseReference
查询某些孩子的价值。您可以尝试这样的方法来检索同一作者的所有帖子。
// Get your reference to the node with all the entries
DatabaseRefenrec ref = FirebaseDatabase.getInstance().getReference();
// Query for all entries with a certain child with value equal to something
Query allPostFromAuthor = ref.orderByChild("name_of_the_child_node").equalTo("author_name");
// Add listener for Firebase response on said query
allPostFromAuthor.addValueEventListener( new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot post : dataSnapshot.getChildren() ){
// Iterate through all posts with the same author
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
为了获得更好的效果,请使用Firebase
规则考虑indexing您的数据库。这使Firebase
以有序的方式保存您的数据,从而更快地管理查询。