0

我的firebase數據庫結構是如何通過傳遞URL來在幻燈片中顯示多個圖像?

USERS/user_name/image/1:「url_1」,2:「url_2」,3:「url_3」,用戶最多可以上傳8張圖片。

我成功存儲了圖片和該網址。但是現在我想以幻燈片放映的形式加載回來。

如何實現進一步的步驟以及如果用戶長時間按下應該從Firebase存儲和數據庫中刪除的特定圖像,還有一個問題。

請幫助...

回答

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 

因此,有網址,你需要創建一個ListView和一個適配器。而已。

作爲回答第二個問題,使用View.OnLongClickListener在coresponding 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(); 

此行代碼會刪除您的第一個網址。

+0

但是,我怎樣才能給出質量幻燈片放映的效果 –

+0

這是一個很好的[教程](http://androidopentutorials.com/android-image-slideshow-using-viewpager/)。希望會幫助你。 –