我有一个 Array List 中的 Keys 列表。我只想同时从这些键中检索数据。
DatabaseReference mDBRef;
List<String> keys = new ArrayList<>();
我用循环尝试了这个,但模型类中的结果重复了两次。
for (int i= 0;i<keys.size();i++)
{
String id = keys.get(i);
Log.d("Keys",id);
mDBRef = FirebaseDatabase.getInstance().getReference().child("Gyms").child(id);
mDBRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
dataSnapshot.getKey();
gyms = dataSnapshot.getValue(Gyms.class);
if (gyms != null)
{
Log.d("Names",gyms.getName());
Toast.makeText(NearMeActivity.this, ""+ gyms.getName(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
最佳答案
Firebase 实时数据库不支持基于值数组加载项目。您必须通过单独的调用来加载每个项目。
虽然这可能会使您的代码变得复杂,但它并不像大多数开发人员想象的那么慢。这是因为 Firebase 会通过管道传输请求。有关详细说明,请参阅我的回答:http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-social-network-app-by-using-query-instead-of-obse/35932786#35932786
关于android - 使用多个键检索数据 Firebase 实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063042/