我的firebase数据库结构是
USERS / user_name / image / 1:" url_1",2:" url_2",3:" url_3",对用户最多限制为8可以上传图片。
我成功存储了图片和网址。但现在我想以幻灯片放映的形式加载回来。
如何实现更多步骤,还有一个问题是用户是否长按了应该从firebase存储和数据库中删除的特定图像。
请帮忙......
答案 0 :(得分:0)
要显示这些网址,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference urlsRef = rootRef.child("USERS").child("user_name").child("image");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String url = ds.getValue(String.class);
Log.d("TAG", url);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
urlsRef.addListenerForSingleValueEvent(eventListener);
您的输出将是:
url_1
url_2
url_3
//and so on
所以有了url,你需要创建一个ListView和一个Adapter。那就是它。
作为对第二个问题的回答,请在相应的View.OnLongClickListener
上使用ImageView
并删除该特定图片,请使用以下代码:
StorageReference storageRef = storage.getReference();
// Create a reference to the file to delete
StorageReference imageRef = storageRef.child("images/imageName.jpg");
// Delete the file
desertRef.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// File deleted successfully
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Uh-oh, an error occurred!
}
});
另外,请不要忘记从Firebase数据库中删除图片的网址,如下所示:
rootRef.child("USERS").child("user_name").child("image").child("1").removeValue();
这行代码将删除您的第一个网址。