Solución:
Al usar la biblioteca de base de fuego en un servidor, normalmente autorizaría el uso de una cuenta de servicio, ya que esto le dará acceso de administrador a la base de datos en tiempo real, por ejemplo. Puedes usar el mismo archivo de credenciales de la cuenta de servicio para autorizar gcloud.
Por cierto: un proyecto de Firebase es esencialmente también un proyecto de Google Cloud Platform, puede acceder a su proyecto de Firebase en https://console.firebase.google.com y https://console.cloud.google.com y https: //console.developers.google.com Puedes ver tu ID de proyecto en Firebase Console> Configuración del proyecto o en el Panel de Cloud Console
Cuando uses el SDK de gcloud, asegúrate de usar el mismo depósito (ya existente) que usa Firebase Storage. Puedes encontrar el nombre del depósito en Firebase web. config
objeto o en la pestaña Firebase Storage. Básicamente, su código debería comenzar así:
var gcloud = require('gcloud');
var storage = gcloud.storage({
projectId: '<projectID>',
keyFilename: 'service-account-credentials.json'
});
var bucket = storage.bucket('<projectID>.appspot.com');
...
Firebase Storage ahora es compatible con el SDK de administrador con NodeJS:
https://firebase.google.com/docs/reference/admin/node/admin.storage
// Get the Storage service for the default app
var defaultStorage = firebaseAdmin.storage();
var bucket = defaultStorage.bucket('bucketName');
...
El SDK de Firebase Admin le permite acceder directamente a su Google Cloud Storage.
Para obtener más detalles, visite Introducción a la API de Admin Cloud Storage.
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: "<BUCKET_NAME>.appspot.com"
});
var bucket = admin.storage().bucket();
bucket.upload('Local file to upload, e.g. ./local/path/to/file.txt')