簡體   English   中英

Firebase 存儲 - 獲取實際數據而不是 downloadURL

[英]Firebase Storage - Get actual data instead of downloadURL

有什么方法可以從 firebase 存儲中獲取實際數據而不是 downladURL 嗎? 就我而言,我將字符串(一定量的 html)存儲到存儲中,我想在需要時獲取實際數據。

但我不知道該怎么做。 根據firebase 文檔,我可以獲得可下載的 url,但無法獲取實際數據。

這是從存儲中獲取數據的函數(在測試用例中,我可以正確獲取 url,但我需要實際數據)

// Create a reference to the file we want to download
var starsRef = storageRef.child('images/stars.jpg');

// Get the download URL
starsRef.getDownloadURL().then(function(url) {
  // Insert url into an <img> tag to "download"
})

謝謝

2020 年 2 月 17 日更新

我解決了我的問題,我的錯誤! 可以使用文檔中提到的 ajax 請求從存儲下載文件。 這是我定義的簡單函數,它返回一個承諾,解析后你可以獲得實際的文件/數據。

async updateToStorage(pathArray, dataToUpload) {

    let address = pathArray.join("/");

    // Create a storage ref
    let storageRef = firebase.storage().ref(address);

    // Upload file as string format, known as firebase task
    let uploadPromise = await storageRef.putString(dataToUpload);

    let url = await uploadPromise.ref.getDownloadURL();

    const res = await fetch(url);

    const content = await res.text();

    return content;
}

const avatar = await updateToStorage(['storage', 'uid', 'avatarUrl'], avatar.png);
//avatar will be the actual image after download.

Cloud Storage for Firebase APIs for JavaScript 在網絡瀏覽器中運行,實際上並沒有提供下載文件原始數據的方法。 這在 Android 和 iOS 上是不同的。 請注意,與 Android 和 iOS 等價物不同, StorageReference沒有任何直接的數據訪問器。 我不知道這是為什么。 將其視為您可以向Firebase 支持提交的功能請求。

您可能需要設置某種 API 端點,您的代碼可以調用它,通過為您的網站提供服務的 Web 服務器或通過其他支持 CORS 的東西進行路由,以便您可以從瀏覽器發出跨 Web 域的請求沒有安全問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM