-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Firebase says Firebase Storage: The given file does not have any download URLs when attempting to download.
Environment info
firebase-tools: 9.12.1
Platform: Windows
Test case
add-content.mjs
// use emulator
process.env.GCLOUD_PROJECT = "test-project";
process.env.FIREBASE_STORAGE_EMULATOR_HOST = "localhost:9199";
import admin from "firebase-admin";
admin.initializeApp({
storageBucket: "default-bucket",
});
const storage = admin.storage().bucket();
const file = storage.file("app-data/test.json");
file
.save(JSON.stringify({ stuffs: "stuffs" }))
.then(() => console.log("wrote"))
.catch((err) => console.error(err)); read-content.html
<!DOCTYPE html>
<html>
<head>
<title>See</title>
</head>
<body>
<script src="https://www.gstatic.com/firebasejs/8.6.4/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.4/firebase-storage.js"></script>
<script>
firebase.initializeApp({
storageBucket: "default-bucket",
});
const storage = firebase.storage();
storage.useEmulator("localhost", 9199);
const contentRef = storage.ref("app-data/test.json");
contentRef
.getDownloadURL()
.then((url) => console.log({ url }))
.catch((err) => console.error(err));
</script>
</body>
</html>Steps to reproduce
- start storage emulator
- run
node add-content.mjs: you should see the messagewrote - open
read-content.htmlin chrome and check console: you should see the error message "Firebase Storage: The given file does not have any download URLs" - go to the emulator ui to check if the added file is there. (it is there. but you are unable to access it)
Expected behavior
You should be able to access it.
Actual behavior
Receiving error
Firebase Storage: The given file does not have any download URLs
My intuition may be incorrect but this randomly came to my mind: May be when I save the content, emulator is not creating a default access token. The reason behind this thought is when I go to the emulator and hit the "create new access token" button for this file, emulator creates a new access token. Then everything works as fine. The read-content.html file runs correctly.
iSuslov, travis3pi, vajahath, d-nakajima, czlowiek488 and 3 more