亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

控制 FirebaseStorage 中的用戶圖像

控制 FirebaseStorage 中的用戶圖像

動漫人物 2023-11-10 15:34:04
我正在使用 Firebase 在 Android 上制作社交應用程序。每個用戶最多可以上傳三張圖像,這些圖像使用 FirebaseStorage 存儲。用戶添加照片的活動我使用用戶的唯一 ID 來命名照片。例如,用戶的照片將被稱為:userid_1.jpg、userid_2.jpg、userid_3.jpg我使用第一張圖片作為用戶的個人資料圖片。這一切都很好,但我想允許用戶刪除照片并添加新照片。例如,用戶有三張照片并刪除了第一張,所以現在 photo2 移動到 photo1 的位置,而 photo3 占據 photo2 的位置。所以我可以很容易地在活動中得到這個效果:photo1ImageView.setImageDrawable(photo2ImageView.getDrawable()); photo2ImageView.setImageDrawable(photo3ImageView.getDrawable()); photo3ImageView.setImageResource(R.drawable.addphotoicon);但現在的問題是如何在 FirebaseStorage 中處理這個問題。顯然我是從刪除圖片開始的。FirebaseStorage.getInstance().getReference().child("images").child(userID + "_1.jpg").delete();然后我想做的就是重命名剩下的兩張圖片。所以刪除photo1后,userid_1.jpg消失,userid_2.jpg變成userid_1.jpg,userid_3.jpg變成userid_2.jpg但無法重命名 FirebaseStorage 中的文件。所以現在當這個 Activity 下次加載時,它會將 photo2 放入第二個 ImageView 中,將 photo3 放入第三個 ImageView 中,將第一個 ImageView 留空。個人資料圖片 (userid_1.jpg) 也會丟失。這不是我想要的行為。我想到的另一種方法是:每當刪除照片時,我都會刪除所有用戶的照片,并以正確的名稱重新上傳剩余的照片,但這在 Firebase 上效率非常低且不必要。我只是想知道是否有人能想出一種有效的方法來做到這一點。
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

云存儲不太擅長維護上傳到其中的對象的順序。即使是大多數普通的計算機文件系統也無法做到這一點。

我建議放棄存儲將維護任何類型的順序或順序的想法,并將該邏輯完全移至數據庫或其他數據存儲中,這確實使您能夠輕松地訂購其中的項目。上傳到存儲的文件的名稱可以是隨機的 - 它們不需要任何含義。您只需要將它們的路徑存儲在數據庫的相關記錄中,并保持兩者同步即可。


查看完整回答
反對 回復 2023-11-10
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

你可以在這里應用一個小技巧。

將您的用戶照片參考作為對象數組存儲到數據庫中。為您的照片創建一個模型類??梢允沁@樣的:


class UserPhoto {

    var photoRef: String? = null //Reference of your photo in Cloud Storage

    var downloadUrl: String? = null //This is optional, but very handy.

    var timestamp: Long? = null // In milseconds

    var order: Int = -1

}

這里你可以看到“時間戳”和“順序”是判斷照片是否是最新的關鍵。只需將此數據作為數組存儲在用戶文檔中即可。每張照片都會有這個數據。然后,您可以根據每個用戶照片的此數據模型將邏輯放入應用程序/服務器中。


查看完整回答
反對 回復 2023-11-10
  • 2 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號