【发布时间】:2019-01-11 13:07:13
【问题描述】:
当我一次又一次地请求 Firebase 时出现性能问题。网格视图更新非常缓慢。所以在这种情况下我应该怎么做我正在考虑将帖子的路径存储在数据库中。这是好主意还是存储在内部存储中。(缓存)
private void setuptempGrid(View view){
setupImageGrid(ProfileActivity.images,view);
FirebaseDatabase.getInstance().getReference()
.child(getString(R.string.db_user_posts))
.child(application.getUser().getUserId()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot d:dataSnapshot.getChildren() ) {
FirebaseDatabase.getInstance().getReference()
.child(getString(R.string.db_posts)).child(getString(R.string.db_public))
.child(d.getKey()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
gridImageAdapter.add(dataSnapshot.getValue(Posts.class).getProfilePic());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
我有这段代码,这需要很长时间才能获取图像,并且每次在创建我的片段时加载。
【问题讨论】:
-
可能使用 RecyclerView 并使用 AsyncTask
-
但我不想一次又一次地向服务器发送请求
-
那么你可以使用像 Realm 或 SQLite 这样的数据库 :)
标签: android firebase caching firebase-realtime-database