我在firebase中获取了一些字符串,这些字符串都保存在标记'imageUID'
下,并使用此imageUID来显示图像。
以下是我如何获取它:
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
imageUID = newRequest.get("imageUID");
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这就是我使用上面提取的imageUID
来展示图片的方式:
private void doSomethingWithPicasso(String imageUIDh, ImageView target){
Picasso.with(getBaseContext())
.load(imageUIDh)
.error(R.drawable.ic_warning_black_24dp)
.into(target, new Callback() {
@Override
public void onSuccess() {
progressBar.setVisibility(View.INVISIBLE);
}
@Override
public void onError() {
Toast.makeText(getBaseContext(), "Error occurred while loading images. Please retry.", Toast.LENGTH_SHORT).show();
}
});
}
我想在我的应用程序中使用从数据库中获取的imagesUIDs
显示每个显示的图像,但是发生的事情只是最后一个imageUID用于显示图像而不是所有图像。
我正在考虑循环遍历此字符串并逐个使用每个字符串来显示图像,但我不知道该怎么做!有没有更好的方法来实现这个目标?
答案 0 :(得分:1)
你可以从这个尝试获得一些帮助
firebase.child("key").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot innerDataSanpShot : dataSnapshot.getChildren()) {
//DataSnapshot of inner Childerns
String username = innerDataSnapShot.child("username").getValue().toString();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});