第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

控制 FirebaseStorage 中的用戶圖像

控制 FirebaseStorage 中的用戶圖像

動(dòng)漫人物 2023-11-10 15:34:04
我正在使用 Firebase 在 Android 上制作社交應(yīng)用程序。每個(gè)用戶最多可以上傳三張圖像,這些圖像使用 FirebaseStorage 存儲(chǔ)。用戶添加照片的活動(dòng)我使用用戶的唯一 ID 來(lái)命名照片。例如,用戶的照片將被稱為:userid_1.jpg、userid_2.jpg、userid_3.jpg我使用第一張圖片作為用戶的個(gè)人資料圖片。這一切都很好,但我想允許用戶刪除照片并添加新照片。例如,用戶有三張照片并刪除了第一張,所以現(xiàn)在 photo2 移動(dòng)到 photo1 的位置,而 photo3 占據(jù) photo2 的位置。所以我可以很容易地在活動(dòng)中得到這個(gè)效果:photo1ImageView.setImageDrawable(photo2ImageView.getDrawable()); photo2ImageView.setImageDrawable(photo3ImageView.getDrawable()); photo3ImageView.setImageResource(R.drawable.addphotoicon);但現(xiàn)在的問(wèn)題是如何在 FirebaseStorage 中處理這個(gè)問(wèn)題。顯然我是從刪除圖片開(kāi)始的。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但無(wú)法重命名 FirebaseStorage 中的文件。所以現(xiàn)在當(dāng)這個(gè) Activity 下次加載時(shí),它會(huì)將 photo2 放入第二個(gè) ImageView 中,將 photo3 放入第三個(gè) ImageView 中,將第一個(gè) ImageView 留空。個(gè)人資料圖片 (userid_1.jpg) 也會(huì)丟失。這不是我想要的行為。我想到的另一種方法是:每當(dāng)刪除照片時(shí),我都會(huì)刪除所有用戶的照片,并以正確的名稱重新上傳剩余的照片,但這在 Firebase 上效率非常低且不必要。我只是想知道是否有人能想出一種有效的方法來(lái)做到這一點(diǎn)。
查看完整描述

2 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

云存儲(chǔ)不太擅長(zhǎng)維護(hù)上傳到其中的對(duì)象的順序。即使是大多數(shù)普通的計(jì)算機(jī)文件系統(tǒng)也無(wú)法做到這一點(diǎn)。

我建議放棄存儲(chǔ)將維護(hù)任何類(lèi)型的順序或順序的想法,并將該邏輯完全移至數(shù)據(jù)庫(kù)或其他數(shù)據(jù)存儲(chǔ)中,這確實(shí)使您能夠輕松地訂購(gòu)其中的項(xiàng)目。上傳到存儲(chǔ)的文件的名稱可以是隨機(jī)的 - 它們不需要任何含義。您只需要將它們的路徑存儲(chǔ)在數(shù)據(jù)庫(kù)的相關(guān)記錄中,并保持兩者同步即可。


查看完整回答
反對(duì) 回復(fù) 2023-11-10
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

你可以在這里應(yīng)用一個(gè)小技巧。

將您的用戶照片參考作為對(duì)象數(shù)組存儲(chǔ)到數(shù)據(jù)庫(kù)中。為您的照片創(chuàng)建一個(gè)模型類(lèi)??梢允沁@樣的:


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

}

這里你可以看到“時(shí)間戳”和“順序”是判斷照片是否是最新的關(guān)鍵。只需將此數(shù)據(jù)作為數(shù)組存儲(chǔ)在用戶文檔中即可。每張照片都會(huì)有這個(gè)數(shù)據(jù)。然后,您可以根據(jù)每個(gè)用戶照片的此數(shù)據(jù)模型將邏輯放入應(yīng)用程序/服務(wù)器中。


查看完整回答
反對(duì) 回復(fù) 2023-11-10
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)