Java 如何使用数组从firebase查询?
我的目标是从Java 如何使用数组从firebase查询?,java,firebase,firebase-realtime-database,android-recyclerview,Java,Firebase,Firebase Realtime Database,Android Recyclerview,我的目标是从user1、user3、user4获得帖子,下面是user2 //Get datasnapshot at your "users" root node DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child ("Users").child("following").child(uid); ref.addListenerForSingleValue
user1、user3、user4
获得帖子,下面是user2
//Get datasnapshot at your "users" root node
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child
("Users").child("following").child(uid);
ref.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//Get map of users in datasnapshot
collectDispayNames((Map<String, Object>) dataSnapshot.getValue());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//handle databaseError
}
});
private void collectDispayNames(Map<String, Object> users) {
displayNames = new ArrayList<>();
//iterate through each following, ignoring their UID
for (Map.Entry<String, Object> entry : users.entrySet()) {
//Get user map
Map singleUser = (Map) entry.getValue();
//Get following_id field and append to list
displayNames.add((String) singleUser.get("who_i_follow"));
//Toast.makeText(this, displayNames.toString(), Toast.LENGTH_LONG).show();
int size = displayNames.size();
if (size > 0){
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));
}else {
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents");
}
if (size >1){
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));
}else {
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents");
}
}
}
无法一次查询多个值。您必须为每个用户运行一个单独的查询,并在客户端合并结果
因为Firebase可以,所以性能并没有一些开发人员想象的那么差。您能用iOS将代码重新写入android(java)吗?我似乎不理解代码,因为我想使用
FirebaseRecyclerView
显示数据,但我没有共享任何iOS或Android代码。但是,如果您在代码中连接这一点时遇到困难,请更新您的问题,以显示您为此所做的尝试。但请注意,FirebaseUI不具有显示多个查询的内置支持。如果需要这样做,您必须自己编写代码。
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));