Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#2,447 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
领域
backend, cloud

调研方向

首先,使用报告中的 firebase-admin@12.0.0 和 firebase-tools@13.1.0 设置,通过 firebase emulators:start --only storage,functions 重现该问题。使用默认 bucket 名称跟踪 getStorage().bucket() 和 bucket.exists(),然后将 emulator 的请求和响应与预期的 bucket 状态进行比较。当 bucket.exists() 针对匹配的默认 emulator bucket 返回 true 时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

api: storage
[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
  • Operating System version: Ubuntu
  • Firebase SDK version: firebase-admin@12.0.0 firebase-tools@13.1.0
  • Firebase Product: storage
  • Node.js version: 18.16.1
  • NPM version: 9.5.1
[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

主要语言
TypeScript
星标
1.7k
派生
419
平均合并
4 天 20 小时
30 天内合并 PR
16

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

firebase/firebase-admin-node 的其他 Issue

查看 firebase/firebase-admin-node 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。