Skip to content

Storage bucket.exists() always returns false for firebase emulator #2447

Open
@ChromeQ

Description

@ChromeQ

[READ] Step 1: Are you in the right place?

  • For issues related to the code in this repository file a Github issue.
  • If the issue pertains to Cloud Firestore, read the instructions in the "Firestore issue"
    template.
  • For general technical questions, post a question on StackOverflow
    with the firebase tag.
  • For general Firebase discussion, use the firebase-talk
    google group.
  • For help troubleshooting your application that does not fall under one
    of the above categories, reach out to the personalized
    Firebase support channel.

[REQUIRED] Step 2: Describe your environment

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

Create basic project with storage and functions setup for emulation: (functions only used to call storage bucket methods)

// firebase.json
"emulators": {
    "functions": {
      "port": 5001
    },
    "storage": {
      "port": 9199
    },
    // ...rest of config

Run emulator with firebase emulators:start --only storage,functions
Verify storage bucket exists in emulator and the name is matched in firebase config showing storage_bucket as the default
Hit the firebase function to run the storage bucket code
Calling bucket.exists() from firebase function always returns false.

Expected outcome:
Calling bucket.exists() from firebase function return true when accessing the default bucket.

Relevant Code:

import { onRequest } from 'firebase-functions/v2/https';
import { getStorage } from 'firebase-admin/storage';

export const foo = onRequest(async (req, res) => {
  const storage = getStorage();
  console.log('APP STORAGE BUCKET:', storage.app.options.storageBucket);

  const bucket = storage.bucket();
  console.log('DEFAULT STORAGE BUCKET:', `name=${bucket.name}`, `id=${bucket.id}`);

  const exists = await bucket.exists();
  console.log('BUCKET EXISTS?:', exists);

  res.send(`BUCKET EXISTS?: ${exists}`);
});

Images

Console output:
image

Emulator Storage: (name of bucket matches id in code)
image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions