﹒ˏˋ 柚柚 ˊˎ﹒⋈
firebase storage 上傳圖片事情
﹒ˏˋ 柚柚 ˊˎ﹒⋈
每次看 firebase 文件都覺得心好累r
﹒ˏˋ 柚柚 ˊˎ﹒⋈
而且它現在會自動導去中文翻譯頁面;辣個中文不是給人看的ㄅ,看到 firebase = 火力地堡,笑死…(還看了好幾次才終於意會到) ,日文有片假名真的方便多了(出現了哈日族心態
﹒ˏˋ 柚柚 ˊˎ﹒⋈
firebase storage 不給人一次下載多個檔案(圖片也是檔案的一種,抓圖片 url 也算是下載),除非去用它那什麼 gsutil 的,但是我不想去用大略看了介紹感覺很麻煩(ry),所以似乎一般需要下載多張圖片的作法就是每次上傳完圖片,就把圖片 URL 存去 firestore 裡
Getting download url of multiple files inside Fireba...
﹒ˏˋ 柚柚 ˊˎ﹒⋈
另一種做法是 用 Promise.all + 迴圈 一張一張下載圖片,不過既然如此的話那還是上傳完圖片就把圖片網址存好比較省事的感覺
﹒ˏˋ 柚柚 ˊˎ﹒⋈
第二個坑,直接在 firebase 主控台可以用 GUI 選擇東西上傳到 storage 的根目錄,可是用程式碼的話會出現這錯誤:FirebaseError: Firebase Storage: The operation 'uploadBytes' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png'). (storage/invalid-root-operation)
﹒ˏˋ 柚柚 ˊˎ﹒⋈
為啥手動傳就可以直接傳根目錄
﹒ˏˋ 柚柚 ˊˎ﹒⋈
第三個坑… 文件 拉到最下面才看到他有完整示例,然後完全沒用到 uploadBytes 這個,反而只有用 uploadBytesResumable ,所以第二個坑就直接迴避了,但現在上傳是能上傳了,也能拿到圖片網址,但圖片本人變成 9 byte + 一張超小的白色方塊 + 預覽失敗 到底
﹒ˏˋ 柚柚 ˊˎ﹒⋈
老天鵝,試到現在終於成功,原因,為了選好圖檔能馬上預覽圖片,選好圖檔之後我先把 file 轉成 Object Url (blob uri) 了(才能丟給 next/image 的 src 吃),但 firebase storage 反而不吃這個(轉回去 blob 他才吃)
﹒ˏˋ 柚柚 ˊˎ﹒⋈
看到 這篇,一開始不知道他在幹嘛,只是有感覺大概跟 blob 有關,又查了好多篇,看到解法全都是用 xhr 方法在 ajax blob 物件(想說 WTF 都 2022... ry),又看到 PJ 大的筆記,想說…我到底為啥要先把檔案轉成 Object Url(柚化)做了點實驗(其實就是把 file 轉成 Object Url 那句拿掉看看結果噴一個超大錯給我 ry)一切才串起來,然後查了一下都 2022 了應該能用 fetch 吧(果然可以)→ 解決
載入新的回覆