Skip to content

Commit 77b3690

Browse files
authored
Use default bucket api (#6406)
* Call GetDefaultBucket in FirebaseStorage
1 parent c17a9c1 commit 77b3690

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Use GetDefaultBucket endpoint to fetch Storage Default Bucket.

src/gcp/storage.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { Readable } from "stream";
22
import * as path from "path";
33

4-
import { storageOrigin } from "../api";
4+
import { firebaseStorageOrigin, storageOrigin } from "../api";
55
import { Client } from "../apiv2";
66
import { FirebaseError } from "../error";
77
import { logger } from "../logger";
8-
import { getFirebaseProject } from "../management/projects";
8+
import { ensure } from "../ensureApiEnabled";
99

1010
/** Bucket Interface */
1111
interface BucketResponse {
@@ -140,18 +140,22 @@ interface StorageServiceAccountResponse {
140140
}
141141

142142
export async function getDefaultBucket(projectId: string): Promise<string> {
143+
await ensure(projectId, "firebasestorage.googleapis.com", "storage", false);
143144
try {
144-
const metadata = await getFirebaseProject(projectId);
145-
if (!metadata.resources?.storageBucket) {
145+
const localAPIClient = new Client({ urlPrefix: firebaseStorageOrigin, apiVersion: "v1alpha" });
146+
const response = await localAPIClient.get<{ name: string }>(
147+
`/projects/${projectId}/defaultBucket`
148+
);
149+
if (!response.body?.name) {
146150
logger.debug("Default storage bucket is undefined.");
147151
throw new FirebaseError(
148152
"Your project is being set up. Please wait a minute before deploying again."
149153
);
150154
}
151-
return metadata.resources.storageBucket;
155+
return response.body.name;
152156
} catch (err: any) {
153157
logger.info(
154-
"\n\nThere was an issue deploying your functions. Verify that your project has a Google App Engine instance setup at https://console.cloud.google.com/appengine and try again. If this issue persists, please contact support."
158+
"\n\nThere was an issue deploying your Storage rules. Verify that your project has a Google App Engine instance setup at https://console.cloud.google.com/appengine and try again. If this issue persists, please contact support."
155159
);
156160
throw err;
157161
}

0 commit comments

Comments
 (0)