我有一個包含照片的Firebase存儲。 我正在組織照片的名稱1,2,3等.... 我試圖讓所有的照片dowload網址,所以在未來,我會進入他們到URL的Arraylist和呈現他們在使用Glide的照片庫(這就是爲什麼我只是在尋找URLS)Firebase存儲下載多張照片網址
我正在尋找一種方法,只要onSucsess被調用,onFailure被調用時會繼續給我Urls(因爲有沒有更多的照片)我想循環結束。
我正在嘗試使用Firebase的getDownloadUrl方法,並添加了一個布爾值,當onFailure被調用時會觸發false。 並增加我的photoOrder int從1開始,由此將更改所選照片的路徑。
public class Photopackges extends AppCompatActivity {
public static boolean shouldRun = true;
public static final String TAG = "debug";
public static int photoOrder = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photopackges);
//just normal firebase setup
FirebaseStorage storage = FirebaseStorage.getInstance();
// while shouldRun boolean is true keep going , until it will be defined false
while (shouldRun == true) {
// define my Firebase storage path,which contain one folder called "test" and three photos 1.jpg,2.jpg,3.jpg
// the number of the photo is represented in the photoOrder int.
String storagePath = "test/" + String.valueOf(photoOrder) + ".jpg";
StorageReference ref = storage.getReference().child(storagePath);
try {
ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// trying to define that if the action was successful , keep on going.
shouldRun = true;
Log.e(TAG, "sucsess! " + uri);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// trying to define that if the action has failed , stop.
shouldRun = false;
Log.e(TAG, "Fail! " + e);
}
});
} catch (Exception e) {
Log.e(TAG, "Error! " + e);
break;
}
//increment the photoOrder so it will go to the next path.
photoOrder++;
Log.e(TAG,"value of photoOrder "+photoOrder);
}
}
}
日誌 -
我沒有他發送更多的請求之前他得到的答案的一個問題。 我只是需要他停下來時,它得到
StorageException:對象不存在的位置。
我猜必須有一個簡單的方法使用火力讓所有的存儲..
感謝您的幫助!
好了,感謝您的幫助!我會嘗試使用RealtimeDatabase並將在此處發佈。 –